我在玩Alexa API。我希望Alexa回复从服务收到的内容。
不确定在哪里添加承诺。我尝试了这个,但Alexa说:“请求的技能响应存在问题”
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent';
},
handle(handlerInput) {
MyService.facts().then(function(data) {
const speechText = 'No facts';
if (data) {
speechText = 'random facts: '
data.forEach(function (fact) {
speechText += fact;
})
}
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
}, function(err) {
console.log(err);
});
}
};
答案 0 :(得分:1)
未使用Promise的回复。这个例子怎么样:
async handle(handlerInput) {
return await MyService.facts().then(function(data) {
// other stuff
});
}