[英]What are the differences between EventEmitter, EventTarget and EventDispatcher
I'm trying to learn implementations of Observer Pattern.我正在尝试学习观察者模式的实现。
EventEmitter/EventTarget/EventDispatcher are one implementation of Observer Pattern but I wonder the differences between these three. EventEmitter/EventTarget/EventDispatcher 是观察者模式的一种实现,但我想知道这三者之间的区别。
Any help would be appreciated?任何帮助,将不胜感激?
You can easily find documentation about all of them I think:你可以很容易地找到关于我认为所有这些的文档:
I would like to mention a detail difference when adding the same listener.我想在添加相同的侦听器时提到一个细节差异。
EventEmitter:事件发射器:
const EventEmitter = require('node:events')
const foo = new EventEmitter()
foo.on('event', listener)
foo.on('event', listener)
foo.emit('event')
// called: 1
// called: 2
function listener() {
console.count('called')
}
EventTarget:活动目标:
const foo = new EventTarget()
foo.addEventListener('event', listener)
foo.addEventListener('event', listener)
foo.dispatchEvent(new Event('event'))
// called: 1
function listener() {
console.count('called')
}
// ------
const foo = new EventTarget()
foo.addEventListener('event', listener, { once: true })
foo.addEventListener('event', listener)
foo.dispatchEvent(new Event('event'))
foo.dispatchEvent(new Event('event'))
// called: 1
function listener() {
console.count('called')
}
// -----
const foo = new EventTarget()
foo.addEventListener('event', listener)
foo.addEventListener('event', listener, { once: true })
foo.dispatchEvent(new Event('event'))
foo.dispatchEvent(new Event('event'))
// called: 1
// called: 2
function listener() {
console.count('called')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.