Я думаю, вы не включили handlerInput
в параметры функции обратного вызова. Попробуйте сделать так, как показано ниже:
handle(handlerInput) {
var out = ""
getJSON(function(data) {
console.log(data)
if (data !== "ERROR") {
var speechOutput = data
out = speechOutput;
}
});
function getJSON(callback)
{
//As I don't know what result might be So I am giving some string value.
var result = 'Thank you !!';
if (result!=='') {
callback(result);
} else {
callback("ERROR");
}
}
return callback(out,handlerInput)
}
};
function callback(out, handlerInput)
{
const jsonurl=out;
console.log(jsonurl)
return handlerInput.responseBuilder
.speak(jsonurl)
.getResponse();
}
Вышеописанный вариант отлично работал для меня, и я получаю данный результат на out variable
. Я думаю, что в результате, который вы получаете по URL-адресу, может возникнуть проблема, если вы проверите, является ли одна строка строкой или объектом.