NodeEventTarget 对比 EventEmitter
NodeEventTarget 对象实现了 EventEmitter API 的修改子集,允许它在某些情况下接近地模拟 EventEmitter。
NodeEventTarget 不是 EventEmitter 的实例,在大多数情况下不能代替 EventEmitter。
- 与
EventEmitter不同,任何给定的listener最多可以在每个事件type中注册一次。 尝试多次注册listener将被忽略。 NodeEventTarget不模拟完整的EventEmitterAPI。 特别是prependListener()、prependOnceListener()、rawListeners()和errorMonitorAPI 未被模拟。'newListener'和'removeListener'事件也不会触发。NodeEventTarget没有为类型为'error'的事件实现任何特殊的默认行为。NodeEventTarget支持EventListener对象以及作为所有事件类型句柄的函数。
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.
- Unlike
EventEmitter, any givenlistenercan be registered at most once per eventtype. Attempts to register alistenermultiple times are ignored. - The
NodeEventTargetdoes not emulate the fullEventEmitterAPI. Specifically theprependListener(),prependOnceListener(),rawListeners(), anderrorMonitorAPIs are not emulated. The'newListener'and'removeListener'events will also not be emitted. - The
NodeEventTargetdoes not implement any special default behavior for events with type'error'. - The
NodeEventTargetsupportsEventListenerobjects as well as functions as handlers for all event types.