Javascript.RU

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

Как сохранить в переменной
Создал и сохранит файл ip.js:
var net = require('net');

function getNetworkIP(callback) {
  var socket = net.createConnection(80, 'www.google.com');
  socket.on('connect', function() {
    callback(undefined, socket.address().address);
    socket.end();
  });
  socket.on('error', function(e) {
    callback(e, 'error');
  });
}


В другом скрипте:
var addr;
ip.getNetworkIP(function (error, addr) {
    console.log('inner: ' + addr);
    if (error) {
        callback(e, 'error');
    }
});
console.log('ip: ' + addr);


Вывод:
Код:
ip: undefined
inner: 192.168.21.94
Правильно ли я понимаю, что из функции выходит раньше, чем ip определен, и как сохранить полученный ip во внешнем скрипте, заранее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2014, 15:24
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Добро пожаловать в чудный мир асинхронности. Для этого и передается функция-калбек в ip.getNetworkIP чтобы вызываться, когда адрес будет получен. Вот в ней и пиши код который переадст этот адрес куда-нибудь или что-то с ним сделает.
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2014, 15:32
Новичок на форуме
Отправить личное сообщение для bscripter Посмотреть профиль Найти все сообщения от bscripter
 
Регистрация: 10.12.2014
Сообщений: 3

Спасибо. Буду учиться далее. Не облегчите ли путь, дав пример использования такового коллбека?
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2014, 15:44
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от bscripter
Не облегчите ли путь, дав пример использования такового коллбека?
Так у тебя в коде и так он используется. В той функции, которая в аргументах получает error и addr пиши код, который делает то что тебе надо с этим addr.
Ответить с цитированием
  #5 (permalink)  
Старый 10.12.2014, 15:56
Новичок на форуме
Отправить личное сообщение для bscripter Посмотреть профиль Найти все сообщения от bscripter
 
Регистрация: 10.12.2014
Сообщений: 3

Спасибо, кажется, начинаю постигать сей чудный мир. Как бы вместо восхождения к высотам разума не получилось восползание
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видимость переменной при асинхронном запросе. Как передать и получить значение? Stroganov Ilya Общие вопросы Javascript 10 17.10.2014 17:33
Как вызвать функцию из переменной? sss2019 Общие вопросы Javascript 7 02.09.2014 13:34
Как получить значение переменной из игры на HTML5? Dimaz Общие вопросы Javascript 6 10.08.2014 16:27
как значение переменной из javascript передать в php? mobiledeveloper Общие вопросы Javascript 1 02.05.2012 20:00
Как с помощью JavaScript сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 16:23