Как отвязать от всех каналов/событий на пушере

Можно ли в клиенте толкателя javascript отменить привязку всех обратных вызовов к определенному каналу или событию?


person user2821200    schedule 09.11.2013    source источник


Ответы (1)


Канал наследуется от EventDispatcher и в настоящее время не предлагает развязать все. Вы можете взломать его, повторно инициализировав переменную-член callbacks, которая управляет событиями на channel:

var pusher = new Pusher( '22364f2f790269bec0a0' );
var channel = pusher.subscribe( 'test-channel' );

var callback = function() {};

for( var i = 0, l = 10; i < l; ++i ) {
  channel.bind( 'event-' + i, callback );
}

console.log( channel.callbacks._callbacks );

channel.callbacks = new channel.callbacks.constructor();

Вы можете увидеть это в действии здесь. Но это будет взлом.

Лучше всего отправить запрос на включение, чтобы добавить функцию unbind_all к объекту EventDispatcher.

person leggetter    schedule 14.11.2013