在 setTimeout 中执行操作时,Alexa Skill 响应未显示任何内容
Alexa Skill response is showing nothing when doing in setTimeout
从今天开始卡住了。问题是这样的
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
从今天开始卡住了。问题是这样的
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