Я играю с ASK SDK v2, предоставленной Amazon, чтобы сделать Skill для Alexa, но я столкнулся с архитектурной проблемой:
Прежде всего, HTTP-запрос работает как чудо, но я хотел бы вернуть речевой ответ, если и только если мой HTTP-запрос завершен, но я даже не знаю, возможно ли это из-за функции «handle», которая должна верните что-нибудь (посмотрите на комментарии):
const MyIntentHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'LaunchRequest' || (request.type === 'IntentRequest' && request.intent.name === 'MyIntent');
},
handle(handlerInput) {
var options = {
host: 'http://foo.com',
port: 80,
path: '/mypath',
method: 'GET'
};
var req = http.request(options, function(result){
result.on("end", function(){
//I would like to return speak here like that :
//return handlerInput.responseBuilder.speak("It works").withSimpleCard("MyTestApp", "It works").getResponse()
})
});
req.end();
//And I would like to remove this line to manage response in result.on("end", function(){}) above
return handlerInput.responseBuilder.speak("It works").withSimpleCard("MyTestApp", "It works").getResponse();
},
};
Есть идеи с этим справиться?