2016-05-23 3 views
0

Я работаю с nodejs и в JS-файле у меня есть код ниже для извлечения данных. , когда я пытаюсь использовать данные за рамки он не работает, я получаю содержание определено в whloe время ..nodejs, вызывающий переменную за пределами области видимости

var data = {}; 
request.get({url: 'https://my-host/Mypath'}, function(err, response, body) { 


    if (err) { 
     console.error(err); 
     data.err = err; 
    } 

    data= body; 


}); 
console.log('Data: ', data); 

Моя главная проблема заключается в том, что я должен отправить res.render с данными, и я необходимо выполнить несколько запросов на сервер.

+2

'console.log (data)' будет запускаться до завершения запроса AJAX – phuzi

ответ

0

Вы делаете асинхронный звонок. console_log() выполняется перед запросом. Попробуйте переместить этот console.log в обратный вызов запроса, и он будет работать.

Чтобы использовать его вне функции запроса, вам необходимо вернуть обещание. Возможно, попробуйте инструмент Q: https://github.com/kriskowal/q