Как я могу сохранить HTTP GET Response для переменной, используя Express (nodejs)? - PullRequest
0 голосов
/ 14 февраля 2019

Я использую Express в Nodejs для того, чтобы сделать GET Call.В ответ я получаю значение, которое мне нужно, но когда я возвращаю значение из моей функции в основную, я получаю неопределенное значение.

function getInfo() 
{

      var oauth = getoAuth();

      request.get({
        url:'myurl',   
        oauth:oauth, 
        qs:null, 
        json:true
      }, 
          function (e, r, data) {
            body.data = data;
            body.emit('update');
      }); 


      body.on('update', function () {
        console.log(body.data.issues[0].key);
        return (body.data.issues[0].key);  
      });

}

Этот ключ - то, что мне нужно.Когда я печатаю его в консоли, я получаю правильное значение, но оно ничего не возвращает, потому что это асинхронный вызов.Как я могу вернуть значение?Можно ли как-то дождаться значения с помощью экспресс?Я видел в stackoverflow, что некоторые люди использовали это решение body.on ('update' ..., но оно у меня не сработало. Оно по-прежнему ничего не сохраняет в переменной.

EDIT-> ответ:

TESTING: undefined
THEKEY1

Сохранение значения в:

var myid = geInfo ();

1 Ответ

0 голосов
/ 14 февраля 2019

попробуйте так:

function getInfo() 
{

      var oauth = getoAuth();

      request.get({ url:'myurl',  oauth:oauth,  qs:null, json:true},
        function (error, response, body) {
            if(!error && response && response.statusCode==200){
               console.log(body);
               return body.data.issues[0].key;  
            }else{
               return null;
            }
      }); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...