Node js, область видимости
Добрый день, помогите пожалуйста никак не могу разобраться.
Как сделать так, чтобы при вызове setURL(), функция возвращала next_url, которую я получаю внутри функции needle.get? var Parse = function () { this.setURL = function (URL, value) { needle.get(URL, function (error, result) { if (error) throw(error); //получаем данные по адресу URL next_url = //находим ссылку на статью }); this.getURL = function (){ return{ url : next_url }; } }; |
надо возвращать промис
примерно так: var Parse = function () { var next_url; this.setURL = function (URL, value) { return new Promise(function(res, rej) { needle.get(URL, function (error, result) { if (error) { rej(error); return; } //получаем данные по адресу URL next_url = //находим ссылку на статью res(next_url); }); }); }; this.getURL = function (){ return{ url : next_url }; } }; но тогда getURL может возвращать старое значение, если needle.get ещё не успел отработать. Там, видно, тоже надо будет промис возвращать |
Alexandroppolus,
util.promisify |
Благодарю за ответ, буду дальше разбираться!
|
Часовой пояс GMT +3, время: 04:50. |