2012-06-20 33 views
2

我使用的彼得·希金斯pubsub library,我遇到了一個有趣的問題:從發佈創造內部本身(彼得·希金斯發佈訂閱)退訂

如果一個特定的發佈事件被用來從自身退訂我不止一次得到第33行pubsub TypeError: this.apply is not a function錯誤。 發生這種情況的原因是緩存[topic]數組在第一個要處理的訂閱上更改其長度,因此,當pubsub嘗試處理第二個訂閱時,它無法找到正確的函數。

這裏是複製所需要的代碼(你需要發佈訂閱和jQuery過於當然)

var handle1 = $.subscribe('pubsub',function(){ 
    $.unsubscribe(handle1); 
}); 

var handle2 = $.subscribe('pubsub',function(){ 
    $.unsubscribe(handle2); 
}); 

$.publish('pubsub'); 

沒有任何人有一個解決方案或替代方法的想法?

+0

發現此拉取請求至少提到問題。還沒有測試:https://github.com/phiggins42/bloody-jquery-plugins/pull/2 – Elad

+0

它可以防止錯誤,但仍然無法呼叫所有訂閱。 – Elad

回答