我总是发现直接进入一个例子更容易。
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 - 监听器一
- 事件二
- eventone - 监听器二
过去,这会导致该序列的语义出现问题。开发人员通常会假设在 'eventtwo' 开始之前已经触发了 'eventone' 的所有侦听器,这可能会进一步引入序列逻辑错误。更明智的日志顺序可能是:
- eventone - 监听器一
- eventone - 监听器二
- 事件二
所以我想问题是 - 为什么大多数实现不遵循事件队列?使用它有什么可能的影响,而不是。
干杯!