【发布时间】:2018-05-22 13:51:49
【问题描述】:
我在我的 Nodejs Alexa 技能服务中使用 Dynasty,在 AWS Lambda 上运行,来查询 DynamoDB。由于 API 的结构,我无法在我的 Alexa 响应中使用查询结果。在下面的代码中,传递给“then”的回调在处理程序返回后运行,因此永远不会分配“name”。如何在响应中使用查询回调中获得的信息?
const dynasty = require('dynasty')(credentials);
const myIntentHandler = {
canHandle(input) {
return input.requestEnvelope.request.intent.name === 'MyIntent';
},
handle(input) {
const userId = input.requestEnvelope.session.user.userId;
const users = dynasty.table('user');
var name;
users.find(userId).then(function(user) {
if(user) {
name = user.name;
} else {
...
}
});
return input.responseBuilder.speak('Hello ' + name).getResponse();
}
};
【问题讨论】:
-
返回 if 块内?另外,希望我知道王朝...用 DynamoDB 查询是如此冗长
标签: node.js amazon-dynamodb alexa dynastyjs