Peter Higgins pubsub ライブラリを使用していますが、興味深い問題に遭遇しました。
特定のパブリッシュ イベントを使用してそれ自体から複数回サブスクライブを解除すると、 pubsub の 33 行目でエラーが発生しますTypeError: this.apply is not a function
。これが発生する理由は、cache[topic] 配列が処理される最初のサブスクリプションでその長さを変更するためです。したがって、pubsub が 2 番目のサブスクリプションを処理しようとすると、正しい関数を見つけることができません。
再現に必要なコードは次のとおりです (もちろん、pubsub と jquery も必要です)。
var handle1 = $.subscribe('pubsub',function(){
$.unsubscribe(handle1);
});
var handle2 = $.subscribe('pubsub',function(){
$.unsubscribe(handle2);
});
$.publish('pubsub');
誰かが解決策または回避策のアイデアを持っていますか?