【问题标题】:How to unbind from all channels / events on pusher如何解除与推送器上的所有频道/事件的绑定
【发布时间】:2013-11-09 11:23:32
【问题描述】:

在 javascript pusher 客户端中,是否可以取消绑定来自特定通道或事件的所有回调?

【问题讨论】:

    标签: pusher


    【解决方案1】:

    Channel 继承自 EventDispatcher,目前不提供 unbind all。您可以通过重新初始化管理channel 上的事件的callbacks 成员变量来破解它:

    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();
    

    您可以在here 中看到这一点。 但这将是一个黑客攻击

    最好的办法是提交一个拉取请求,将unbind_all 函数添加到EventDispatcher 对象。

    【讨论】:

      猜你喜欢
      • 2015-07-11
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2011-08-16
      • 2021-08-11
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多