gpt4 book ai didi

javascript - 如何将AWS DynamoDB docClient.get项目放入变量中?

转载 作者:行者123 更新时间:2023-12-02 23:21:45 26 4
gpt4 key购买 nike

我目前正在代码中使用 AWS SDK 和 DynamoDB,但我经常遇到的主要问题是在创建异步事件链时查找变量的范围。

这适用于我的 Node.js 服务器,它将运行 Telegram 机器人并在我的 AWS DynamoDB 中检索/存储数据。它可以处理大量嵌套调用并传递变量,但使代码变得非常复杂。

我想要实现的是类似于ASYNC/AWAIT的东西。

async DB(){
let paramsGet = { TableName:'some_table', Key:{"id":some_id} }
let database_item = await docClient.get(paramsGet, function(err,data){
if(err){
console.log(err)
} else {
console.log("SUCCESSFULL GET");
return data //RETURN IT TO VARIABLE
}
}

let paramsPut = {
TableName: "my_table",
Item: {
//THESE VALUES SHOULD WAIT FOR GET TO FINISH
//THEN SEND IT TO DB
"id":database_item.id,
"name":database_item.name,
"value":database_item.value
}
}

docClient.put(paramsPut, function(err,data){
if(err){
console.log(err)
} else {
console.log("SUCCESSFULL PUT");
}
}

}
DB();

当我这样做时 let db_item = wait docClient.get(...)console.log(db_item) 它将显示一个数据流,但它不会看起来不像 if(err){ console.log(err) } else { console.log(data)} 中返回的数据?

我应该如何处理这个返回值?这是一个 promise 还是其他需要解析的东西?我似乎找不到 db_item.type..

最佳答案

几乎所有 AWS JavaScript SDK 方法都有 .promise() 函数返回被调用操作的 Promise。

由于 await 与 Promises 一起使用,您可以根据需要使用它:

try {
let res = await docClient.get(paramsGet).promise();
let database_item = res.Item;
console.log("SUCCESSFULL GET", database_item);
} catch(err) {
console.log(err);
}

您可以在documentation中找到返回对象的结构描述。 .

.put类似。

关于javascript - 如何将AWS DynamoDB docClient.get项目放入变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56920484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com