EventEmitter 类什么作用
EventEmitter 类的主要方法
EventEmitter 类什么作用
在 Node.js 中,EventEmitter
是一个非常核心的类,它提供了一种事件驱动的机制。几乎所有的 Node.js 核心模块(如 fs
, http
, net
等)都采用了事件驱动模型,而 EventEmitter
类正是这个机制的基础。它允许对象发出事件,并让其他对象对这些事件作出反应(即注册回调)。
EventEmitter 类的主要方法
on(event, listener)
on()
方法用于为某个事件注册监听器,当该事件被触发时,回调函数(listener
)就会被调用。event
是事件名,listener
是一个函数,它会在事件触发时执行。
emit(event, [...args])
emit()
方法用于触发指定的事件,并可以传递可选的参数给事件的监听器。这个方法返回一个布尔值,指示事件是否有任何监听器(true
表示有,false
表示没有)。
once(event, listener)
once()
方法与on()
方法类似,不同的是它注册的监听器只会执行一次,事件触发后会被自动移除。
removeListener(event, listener)
/ off(event, listener)
removeListener()
方法(或者off()
,两者等价)用于移除一个事件的监听器。如果事件的监听器被移除,事件触发时不会再调用该回调
removeAllListeners([event])
removeAllListeners()
方法移除指定事件的所有监听器。如果没有传递event
参数,则移除所有事件的所有监听器。
listenerCount(event)
listenerCount()
方法返回指定事件的监听器数量。
prependListener(event, listener)
prependListener()
方法与on()
方法类似,不同的是它将监听器添加到事件监听器队列的最前面。这意味着该监听器会比使用on()
方法添加的监听器优先执行。
prependOnceListener(event, listener)
prependOnceListener()
方法与once()
类似,它将在事件监听器队列的最前面添加一个一次性监听器。