1

我总是发现直接进入一个例子更容易。

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 实现中,这会导致以下日志顺序:

  1. eventone - 监听器一
  2. 事件二
  3. eventone - 监听器二

过去,这会导致该序列的语义出现问题。开发人员通常会假设在 'eventtwo' 开始之前已经触发了 'eventone' 的所有侦听器,这可能会进一步引入序列逻辑错误。更明智的日志顺序可能是:

  1. eventone - 监听器一
  2. eventone - 监听器二
  3. 事件二

所以我想问题是 - 为什么大多数实现不遵循事件队列?使用它有什么可能的影响,而不是。

干杯!

4

1 回答 1

1

Pubsub 旨在使一个订阅者不依赖、不知道或不受其他订阅者的阻碍。以下是探讨每种方法的优缺点的几个问题:

于 2012-09-14T05:06:19.763 回答