const EventEmitter = require('events'); 'newListener' 事件 当新增监听器时,在新的监听器被添加到其内部监听器数组以前触发 'removeListener' 事件 当移除已存在的监听器时触发
最大限制数量数组
当前的监听器最大限制数的默认值:EventEmitter.defaultMaxListeners() 获取EventEmitter当前的监听器最大限制数的值:emitter.getMaxListeners() 设置EventEmitter当前的监听器最大限制数的值:emitter.setMaxListeners(n)
当前数量异步
返回正在监听的名为 eventName 的事件的监听器的数量: emitter.listenerCount(eventName) 废弃:EventEmitter.listenerCount(emitter, eventName)
添加函数
监听器会在每次触发命名事件时被调用 添加 listener 函数到名为 eventName 的事件的监听器数组的末尾 emitter.on(eventName, listener) 别名:emitter.addListener(eventName, listener) 添加 listener 函数到名为 eventName 的事件的监听器数组的开头 emitter.prependListener(eventName, listener) 监听器只在第一次触发命名事件时被调用一次 添加单次监听器 listener 到名为 eventName 的事件的监听器数组的末尾 emitter.once(eventName, listener) 添加单次监听器 listener 到名为 eventName 的事件的监听器数组的开头 emitter.prependOnceListener(eventName, listener)
删除ui
从名为 eventName 的事件的监听器数组中移除指定的 listener emitter.removeListener(eventName, listener) 别名:emitter.off(eventName, listener) 移除所有监听器或指定的 eventName 事件的监听器 emitter.removeAllListeners([eventName])
emitter.emit(eventName[, ...args]) 1. 按照监听器注册的顺序,同步地(顺序的依次)调用每一个注册到名为 eventName 的事件的监听器,并传入提供的参数。能够使用 setImmediate() 或 process.nextTick() 切换到异步模式。 2. 在事件触发以后、且最后一个监听器执行完成以前, removeListener() 或 removeAllListeners() 不会从 emit() 中移除绑定的监听器 3. 若是事件有监听器,则返回 true,不然返回 false
emitter.eventNames() 数组中的值为字符串或 Symbol
获取事件监听器数组的副本 emitter.listeners(eventName) 获取事件监听器数组的拷贝,包括封装的监听器(例如由 .once() 建立的) emitter.rawListeners(eventName)