我知道标题可能会令人困惑,所以我举一个例子。
'GetDataIntent': function(){
var body = "";
var url = "someAPI.com";
https.get(url, (response) =>{
response.on('data', (chunk) => {
body+=chunk;
});
response.on('end', (chunk) => {
var data = JSON.parse(body);
/* Do Some Stuff */
this.emit(":ask", "Would you like more info?");
//The Concept I am trying to describe
Alexa.registerHandlers(innerHandlers);
var innerHandlers = {
'AMAZON.YesIntent': function(){
this.emit(":tell", "More info");
/* then destroy the temp handlers */
},
'AMAZON.NoIntent': function(){
this.emit(":tell", "Goodbye!");
/* Destroy the temp handlers */
}
};
});
});
}
从我读过的关于ASK的文档中,似乎你必须在程序开始时注册处理程序,但由于显而易见的原因,我无法做到这一点。我希望能够制作临时处理程序,类似于我所展示的方式,因此它不会跳转到任何随机意图,而是根据用户响应保持在当前意图的范围内。
答案 0 :(得分:0)
您应该在端点处理程序中处理此问题,并在会话对象上保持状态