如何 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 得到的结果可能有问题,你能检查一下它是字符串还是对象。