Как вернуть handlerinput.responsebuilder внутри функции, используя node js для Alexa Skill - PullRequest
0 голосов
/ 23 января 2020

Я был поражен тем, как вернуть handlerinput.responsebuilder, чтобы говорить о значении, хранящемся в переменной функции для моего навыка Alexa. Я использую ask-sdk-core node js для создания своего Alexa Skill. Я использую функцию, как показано ниже. Пожалуйста, помогите мне в решении этой проблемы.

function callback(out)
{
    var jsonurl=out;   
    console.log(jsonurl)

    return handlerInput.responseBuilder
                .speak(jsonurl)
                .getResponse();

}

1 Ответ

0 голосов
/ 23 января 2020

Я думаю, вы не включили 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-адресу, может возникнуть проблема, если вы проверите, является ли одна строка строкой или объектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...