我正在使用 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');
有人对解决方案或解决方法有想法吗?