如何 return handlerinput.responsebuilder 在函数内部使用 node js for Alexa Skill
How to return handlerinput.responsebuilder inside a function using node js for Alexa Skill
我对如何 return handlerinput.responsebuilder 为我的 Alexa Skill 说出存储在函数变量中的值感到震惊。我正在使用 ask-sdk-core node js 构建我的 Alexa Skill。我正在使用的功能如下。请帮我解决这个问题。
function callback(out)
{
var jsonurl=out;
console.log(jsonurl)
return handlerInput.responseBuilder
.speak(jsonurl)
.getResponse();
}
我认为您没有在回调函数参数中包含 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 得到的结果可能有问题,你能检查一下它是字符串还是对象。
我对如何 return handlerinput.responsebuilder 为我的 Alexa Skill 说出存储在函数变量中的值感到震惊。我正在使用 ask-sdk-core node js 构建我的 Alexa Skill。我正在使用的功能如下。请帮我解决这个问题。
function callback(out)
{
var jsonurl=out;
console.log(jsonurl)
return handlerInput.responseBuilder
.speak(jsonurl)
.getResponse();
}
我认为您没有在回调函数参数中包含 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 得到的结果可能有问题,你能检查一下它是字符串还是对象。