从一天开始就卡住了。问题是这样的。
var alexa = require('alexa-app');
// Define an alexa-app
var myapp = new alexa.app('myapp');
myapp.intent('WelcomeIntent', function(request,response) {
console.log(request);
response.say("This is not working.<break time='2s'/>")
setTimeout(function(){
response.say("This is inside timeout.")
},1000);
});
在语音模拟器Amazon Alexa上,输出看起来像这样。
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>This is not working.<break time='2s'/></speak>"
},
"shouldEndSession": false
},
"sessionAttributes": {}
}
请帮帮我。问题是像Promise或setTimeout或fetch或google map API这样的异步函数内部的响应我没有得到正确的响应。
最佳答案
所以最后我找到了解决方案。
要在alexa-app框架中处理异步回调,有两种方法。
使用低于4.0.0的版本
var alexa = require('alexa-app');
// Define an alexa-app
var myapp = new alexa.app('myapp');
myapp.intent('WelcomeIntent', function(request,response) {
console.log(request);
makePromiseBasedCallback(request,response);
return false;
});
makePromiseBasedCallback.then(function(data){
response.say(data.cardContent);
response.send();
});
使用4.0.0版
跟随github link
关于javascript - 在setTimeout中进行操作时,Alexa Skill响应未显示任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43808626/