Как сделать вызов Http до Alexa Skill.launch и изменить речь Invocation на основе ответа, полученного в Node JS - PullRequest
0 голосов
/ 27 декабря 2018

Ниже моя проблема:

  • необходимо сделать http-вызов и получить ответ
  • обработать ответ и получить требуемое значение
  • Теперь на основеПолученное выше значение изменяет вызов Launch.

Проблема:

Если я определяю глобальную переменную, она выполняется первой из-за асинхронности, и речь изменяется, если я использую функцию обещаниявнутри функции умения я не могу ничего вызвать.

Как решить эту проблему.

Ниже приведен мой код (обратите внимание, что это не весь код)

Привет! Я пытаюсь изменить приветствие после вызова на основеответ API.Но когда я вызываю слово пробуждения, Алекса просто мигает и останавливается.

'use strict';
module.change_code = 1;
var Alexa = require('alexa-app');
var skill = new Alexa.app('greeter-service');

var Patientdata = function (callback){
var body = [] ;
const https = require('http');
https.get('SomeURL', (resp) => {
resp.on('data', (chunk) => {
body.push(chunk);
});
resp.on('end', () => {
body = Buffer.concat(body).toString();
let  jbody = JSON.parse(body);
console.log(jbody);
callback(jbody);
});
});
};

function Checkdata(cb)
{
  Patientdata(function(res){

console.log(res);
// do some logic
cb(true);

});
}


skill.launch(function(req, res) {

Checkdata(function(def){

if(def)
{
 var prompt = 'Hi Greetings !!! '
    res.say(prompt).reprompt(prompt).shouldEndSession(false);
}
else
{
    var prompt = 'Hi you are not a registered user !!!'
    res.say(prompt).reprompt(prompt).shouldEndSession(false);
}
});
});
...