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)