DynamoDB Data Mapper, SDK v3 兼容性问题

0

【以下的问题经过翻译处理】 有人知道 AWS Labs Datamapper 是否与 @aws-sdk/client-dynamodb 兼容吗?当我尝试执行 mapper.scan() 时, 例如:

"errorMessage": "this.client.scan(...).promise is not a function",

就好像它正在寻找一个 .promise() 方法,当 client.scan() 已经返回一个 promise 时。引起这个问题的调用点是ScanPaginator.ts#L27

this.client = new DynamoDB({});
this.mapper = new DataMapper({
    client: this.client
})

我认为这种混乱的原因可能是 dynamodb-data-mapper 是为 aws-sdk 2.7 设计的,从未更新到 v3。我找到了一些非常旧的文档,解释了发生了什么:

默认情况下,AWS SDK for JavaScript 将检查全局定义的 Promise 函数。如果找到了,它将在 AWS.Request 对象上添加 promise() 方法。

因此,我认为所有这些的要点是尝试使 scan() 异步,即使在 v3 中它已经是异步的了。由于这是 typescript,有人能想到解决方法吗?也许扩展 v3 DynamoDB 客户端以添加一个不做任何操作的 .promise() 方法?

profile picture
专家
已提问 8 个月前43 查看次数
1 回答
0

【以下的回答经过翻译处理】 dynamodb-data-mapper-js包已经多年没有更新,如果您打算使用JS V3,则强烈建议不要依赖它。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则