例に直接飛び込む方が簡単だといつも思っていました。
object.on('eventone', function() {
console.log('eventone - listener one');
object.trigger('eventtwo');
});
object.on('eventone', function() {
console.log('eventone - listener two');
});
object.on('eventtwo', function() {
console.log('eventtwo');
});
object.trigger('eventone');
ほとんどの PubSub 実装では、これにより次のログ順序になります。
- eventone - リスナー 1
- イベントツー
- eventone - リスナー 2
これまで、このシーケンスのセマンティクスに問題がありました。多くの場合、開発者は 'eventone' のすべてのリスナーが 'eventtwo' が開始する前に起動したと想定します。これは、トラックのさらに下にシーケンス ロジックのバグを導入する可能性があります。より賢明なログの順序は次のようになります。
- eventone - リスナー 1
- eventone - リスナー 2
- イベントツー
だから私は質問だと思います - ほとんどの実装がイベントキューイングに従わないのはなぜですか? そして、それを使用する場合と使用しない場合の影響は何ですか。
乾杯!