NodeEventTarget 与 EventEmitter


🌐 NodeEventTarget vs. EventEmitter

NodeEventTarget 对象实现了经过修改的 EventEmitter API 子集,使其在某些情况下可以接近地 模拟 一个 EventEmitter。NodeEventTarget 不是 EventEmitter 的实例,并且在大多数情况下不能替代 EventEmitter 使用。

🌐 The NodeEventTarget object implements a modified subset of the EventEmitter API that allows it to closely emulate an EventEmitter in certain situations. A NodeEventTarget is not an instance of EventEmitter and cannot be used in place of an EventEmitter in most cases.

  1. 与 EventEmitter 不同,任何给定的 listener 在每种事件 type 中最多只能注册一次。尝试多次注册同一个 listener 将被忽略。
  2. NodeEventTarget 并不模拟完整的 EventEmitter API。具体来说,prependListener()、prependOnceListener()、rawListeners() 和 errorMonitor API 不会被模拟。'newListener' 和 'removeListener' 事件也不会被触发。
  3. NodeEventTarget 对类型为 'error' 的事件没有实现任何特殊的默认行为。
  4. NodeEventTarget 支持将 EventListener 对象以及函数作为所有事件类型的处理器。