this.response.speak('Okay, I will ask you some questions about ' +language +
'. Here is your first question.' + this.AskQuestion);
如果我用 Python 作为语言,在Alexa模拟器上我得到输出
"好的,我会问你一些关于python的问题。这是你的第一个问题。未定义"
AskQuestion
看起来像这样:
'AskQuestion': function() {
var language = this.attributes['language'];
var currentQuestion=flashcardsDictionary
[this.attributes['currentFlashcardIndex']].question;
return 'In ' + language +', ' + currentQuestion;
}
为什么AskQuestion会返回未定义的值?
答案 0 :(得分:0)
我会假设AskQuestion是另一个处理程序。在项目末尾的sdk example中,它举例说明了如何在同一状态下调用另一个处理程序。
const handlers = {
'LaunchRequest': function () {
this.emit('HelloWorldIntent');
},
'HelloWorldIntent': function () {
this.emit(':tell', 'Hello World!');
}
};
所以你不能这样.AskQuestion导致它不存在,alexa sdk将函数隐藏在对象内的另一组隐藏键中。 你可以做的是将意图转发给AskQuestion并处理那里的内容
this.response.speak('AskQuestion');
然后在AskQuestion
'AskQuestion': function() {
var language = this.attributes['language'];
var currentQuestion=flashcardsDictionary
[this.attributes['currentFlashcardIndex']].question;
this.response.speak("Yes everything is alright");
this.emit(':responseReady');
}