event
概念
1.Node中的event沒有默認行為和事件冒泡
2.const EventEmitter = require('events'); //返回一個類
3.通常我們需要繼承EventEmitter 來實現事件
4.一個EventEmitter 對象默認最大可以有10個監聽,可以通過emitter.setMaxListeners()來設置最大監聽數
5.大多數Nde.js 核心對象都繼承實踐類
添加監聽
1.emitter.addListener(enentName,listener)
2.emitter.on(eventName,listener)
3.emitter.once(eventName,listener)
注意點
和瀏覽器端事件不同,監聽函數的第一個參數就是觸發時傳入的參數而不是event對象
emitter.addListener和emitter.on是同一個方法
觸發事件
emitter.emit(eventName[,...args])
注意點
和瀏覽器端的事件不同,傳入參數不用數組而是參數列表
移除事件
emitter.removeListener(eventName,listenner)
emitter.off(eventName,listenner)
注意點
emitter.removeListener是同一個方法
emitter.off()必須node版本大于V10.0.0
const EventEmitter = require('events');
class myEmitter extends EventEmitter{
}
let myEmitters = new myEmitter();
let list = ['1','2'];
myEmitters.setMaxListeners(5)
myEmitters.addListener('text',(...arg)=>{
console.log(...arg);
console.log('events addListener')
})
myEmitters.emit('text','aa','bb',list);