gpt4 book ai didi

javascript - Ajax 请求后 Alexa Skill 没有响应

转载 作者:行者123 更新时间:2023-11-30 20:32:55 24 4
gpt4 key购买 nike

此代码完美运行

var app = new Alexa.app('appName');
// ...
app.intent('marcopolo', {
'slots': {},
'utterances': ['marco']
}, function(request, response){
console.log('marco worked');
response.say('polo').shouldEndSession(false).send();
});

// Alexa says: polo
// Log says: marco worked

此代码无效

var app = new Alexa.app('appName');
// ...
app.intent('marcopolo', {
'slots': {},
'utterances': ['marco']
}, function(request, response){
console.log('marco started');
return ajax('http://www.google.com')
.then(function(){
console.log('marco response');
response.say('polo').shouldEndSession(false).send();
})
.catch(function(){
console.log('marco error');
response.say('polo, I think').shouldEndSession(false).send();
});
});

// alexa says: (no response)
// Log says: marco started

我试过同时使用 request-promisesuperagent作为具有相同结果的 Ajax 库。

以下是版本:

"alexa-app": "^2.4.0",
"request-promise": "^2.0.0",
"superagent": "^3.8.3"

这是我的 Alexa 技能 intent :

"intents": [
{
"name": "marcopolo",
"slots": [],
"samples": [ "marco" ]
}
]

我从未见过 app.intent() 采用 return 语句的示例,但我在网上某处阅读了一个响应,表明返回一个 promise 是必需的app.intent() 内部异步,但此更新无效:

return ajax('http://www.google.com')

我还认为它可能很慢并且超时,但我的 Alexa Skill Timeout 设置为 5 分钟。我有其他技能可以毫无问题地执行 Ajax,而且代码都在 Lambda(云服务)上运行,所以我无法想象任何环境会导致问题。

感谢任何帮助。

最佳答案

此代码有效

var ajax = require('request-promise');
//...
app.intent('marcopolo', {
'slots': {},
'utterances': ['marco']
}, function(req, res){

ajax('http://google.com').then(function() {
console.log('success');
res.say('polo').send();
}).catch(function(err) {
console.log(err.statusCode);
res.say('not working').send();
});
return false;

});

事实证明,return 语句是必需的,而且它必须是 false。我找不到任何地方对此进行记录,也找不到任何关于 return falseapp.intent() 意味着什么的解释。返回 undefined 或 Promise 对象会中断交互。

关于javascript - Ajax 请求后 Alexa Skill 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com