Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2018, 13:51
Новичок на форуме
Отправить личное сообщение для Maxix Посмотреть профиль Найти все сообщения от Maxix
 
Регистрация: 18.03.2018
Сообщений: 2

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
};
}

};
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2018, 11:19
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,004

надо возвращать промис
примерно так:
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 ещё не успел отработать. Там, видно, тоже надо будет промис возвращать
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2018, 11:33
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Alexandroppolus,
util.promisify
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2018, 13:12
Новичок на форуме
Отправить личное сообщение для Maxix Посмотреть профиль Найти все сообщения от Maxix
 
Регистрация: 18.03.2018
Сообщений: 2

Благодарю за ответ, буду дальше разбираться!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные вырожения node js vlzkonopatov AJAX и COMET 10 30.11.2014 06:10
Проверка фала. Узнать существует он или нет. Node js vlzkonopatov AJAX и COMET 0 28.11.2014 12:05
Область видимости функции DenQ jQuery 16 17.12.2013 09:15
Область видимости. Xaver Общие вопросы Javascript 1 18.08.2011 09:19
область видимости Ultimatum Общие вопросы Javascript 2 19.06.2011 10:47