Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удаление ненужного события/коллбека (https://javascript.ru/forum/misc/40586-udalenie-nenuzhnogo-sobytiya-kollbeka.html)

ozalexo 12.08.2013 06:41

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

Не могу понять, как удалить у события каллбек. Вижу, что в функции 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. Ищу сам принцип, как это нужно делать.

danik.js 12.08.2013 09:38

У тебя при каждом вызове создается новый сокет. Так и задумано?


Часовой пояс GMT +3, время: 04:01.