Ниже моя проблема:
- необходимо сделать 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);
}
});
});