Возврат ещё несуществующей переменной

Рейтинг: 0Ответов: 1Опубликовано: 21.02.2015

Здравствуйте. Пишу свой первый модуль для node js и столкнулся с такой проблемой:
В конце нашего модуля мы передаём module.exports, содержащий набор функций.
Но если функция определится только через несколько сек.?
У меня она определяется при открытии serialPort.


Для тех, кто не понял, я подготовил похожую ситуация на обычном js: jsfiddle
Функция возвращает ещё несуществующую переменную.
Возможно, кто-то предложит поставить таймер и на вызов этой функции, но мне этот вариант не подходит.

Ответы

▲ 2Принят

Вам, я так понимаю, нужен класс для подключения, реализующий callback. Условный псевдокод:

var Connection = function (port, on_connection_callback) {
    var is_connected = false;

    var connection = connect_to_tty(port);
    // Не знаю, как там устанавливается соединение и как называется метод,
    // но думаю вы разберетесь.
    connection.onopen = function () {
        is_connected = true;
        on_connection_callback()
    };

    this.send = function (message) {
        if (is_connected) // send
        else // raise error
    }
}

var connection = new Connection('/dev/tty1', function () {
    console.log('connection established!');
    connection.send('hello, world');
});