2

我正在使用 Peter Higgins pubsub 库,但遇到了一个有趣的问题:

如果使用特定的发布事件多次取消订阅,我会在 pubsub 的第 33 行收到错误消息TypeError: this.apply is not a function。发生这种情况的原因是 cache[topic] 数组在要处理的第一个订阅上改变了它的长度,因此当 pubsub 尝试处理第二个订阅时它找不到正确的函数。

这是重现所需的代码(当然,您也需要 pubsub 和 jquery)

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

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

$.publish('pubsub');

有人对解决方案或解决方法有想法吗?

4

1 回答 1

2

我在 github 上为此编写了自己的修复程序。希望它可以帮助某人。

https://github.com/eladzlot/bloody-jquery-plugins/blob/master/pubsub.js

于 2012-10-14T12:36:25.433 回答