Показать сообщение отдельно
  #1 (permalink)  
Старый 12.08.2013, 06:41
Новичок на форуме
Отправить личное сообщение для ozalexo Посмотреть профиль Найти все сообщения от ozalexo
 
Регистрация: 12.08.2013
Сообщений: 1

Удаление ненужного события/коллбека
Доброе время.

Не могу понять, как удалить у события каллбек. Вижу, что в функции notifyChange есть замыкание и оно уже не обращает внимания на изменёный "stat", но как это замыкание удалить или заменить, не могу сообразить.

function callbackA(){console.log("A");}
function callbackB(){console.log("B");}

var conform = {};

function notifyChange(EventId, callback) {

    conform[EventId] = callback;

    if (callback && typeof callback === "function") {
        this._socket = new WebSocket("ws://127.0.0.1/", "rpc");
        var socket = this._socket;

        socket.onopen = function() {
            socket.send(JSON.stringify({"A": "1"}));
        };

        socket.onmessage = function(msg) {
            var responseEventId = JSON.parse(msg.evtid);
            conform(responseEventId);
        };
    } else {
        console.Error("Error");
        callback(-1);
    }
}

notifyChange('1', callbackA);
notifyChange('1', callbackB);


Мне нужно, чтобы после вызова "notifyChange(1, callbackB);" событие '1' забыло о каллбэке callbackA. Ищу сам принцип, как это нужно делать.

Последний раз редактировалось ozalexo, 12.08.2013 в 06:57.
Ответить с цитированием