[英]How to read and use data from DynamboDB in an Alexa skill
我正在構建一個 Alexa 技能,它從 DynamoDB 表中檢索一些數據,然后需要在另一個 function 或語音 output 中使用它。 我的想法是使用 async/await,但我不知道該怎么做。
var AWS = require('aws-sdk');
AWS.config.update({region: 'us-west-2'});
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
var params = {
TableName: 'someTableName',
Key: {'UserID': '1'}
};
var getDataPromise = docClient.get(params).promise();
getDataPromise.then(
function(data) {
console.log(data.Item); // I need to return data.Item to somehow use in .speechoutput()
}
).catch(
function(err) {
console.log(err);
}
);
如果我創建一個async
function,我不確定我會將await
放在哪里或如何將數據返回到.speechoutput()
。 我曾嘗試將await
放在docClient
function 前面,但它似乎不起作用。
var AWS = require('aws-sdk');
AWS.config.update({region: 'us-west-2'});
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
async function getData() {
var params = {
TableName: 'someTableName',
Key: {'UserID': '1'}
};
var getDataPromise = await docClient.get(params).promise();
getDataPromise.then(
function(data) {
console.log(data.Item); // I need to return data.Item to somehow use in .speechoutput()
}
).catch(
function(err) {
console.log(err);
}
);
}
getData();
看起來你可能沒有得到異步/等待。
Await 讓 JS 等待,直到 promise 被解析並獲得解析返回的任何內容。
getDataPromise
包含解析后的docClient.getParams()
操作的結果,應該是數據 object。
AFAICT,您的代碼失敗,因為您試圖“然后”一個普通的舊數據 object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.