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
EXPERTE
gefragt vor 8 Monaten45 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen