【以下的问题经过翻译处理】 有人知道 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
.promise()
client.scan()
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() 方法?
【以下的回答经过翻译处理】 dynamodb-data-mapper-js包已经多年没有更新,如果您打算使用JS V3,则强烈建议不要依赖它。
您未登录。 登录 发布回答。
一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。