前言
所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象开放了一个 eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上。 事件名称通常是驼峰式的字符串,但也可以使用任何有效的 JavaScript 属性名。
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
console.log('触发了一个事件!');
});
myEmitter.emit('event');
EventEmitter 类
######类属性defaultMaxListeners
- 每个事件默认可以注册最多 10 个监听器,EventEmitter 实例的默认值可以使用 EventEmitter.defaultMaxListeners 属性改变。
事件
newListener(eventName,listener)
一个监听器被添加到其内部监听器数组之前触发自身的 'newListener' 事件。
removeListener(eventName,listener)
方法
addListener(eventName, listener)
on(eventName, listener)
once(eventName, listener)
prependListener(eventName, listener)
添加 listener 函数到名为 eventName 的事件的监听器数组的开头
prependOnceListener(eventName, listener)
emit(eventName[, ...args])
eventNames()
返回已注册监听器的事件名数组
listeners(eventName)
eventName 的事件的监听器数组的副本。
rawListeners(eventName)
返回 eventName 事件的监听器数组的拷贝,包括封装的监听器(例如由 .once() 创建的)
listenerCount(eventName)
正在监听名为 eventName 的事件的监听器的数量。
removeListener(eventName, listener)
off(eventName, listener)
removeAllListeners([eventName])
setMaxListeners(n)
getMaxListeners()
返回 EventEmitter 当前的最大监听器限制值