如何将 AWS DynamoDB docClient.get 项放入变量中?
How to put AWS DynamoDB docClient.get item into variable?
我目前在我的代码中使用 AWS SDK 和 DynamoDB,但我经常遇到的主要问题是在创建异步事件链时查找变量的范围。
这是我的 node.js 服务器,它将 运行 电报机器人和 retrieve/store 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 = await docClient.get(...)
和 console.log(db_item)
它会显示一个数据流,它看起来不像 return 中的数据 if(err){ console.log(err) } else { console.log(data)}
中的数据?
我应该如何处理这个 return 值?它是一个承诺还是其他需要解析的东西?我似乎找不到 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
。
我目前在我的代码中使用 AWS SDK 和 DynamoDB,但我经常遇到的主要问题是在创建异步事件链时查找变量的范围。
这是我的 node.js 服务器,它将 运行 电报机器人和 retrieve/store 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 = await docClient.get(...)
和 console.log(db_item)
它会显示一个数据流,它看起来不像 return 中的数据 if(err){ console.log(err) } else { console.log(data)}
中的数据?
我应该如何处理这个 return 值?它是一个承诺还是其他需要解析的东西?我似乎找不到 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
。