eventEmitter是一個對事件進行監聽的對象,
說白了就是爲事件寫回調函數,
當觸發一個事件執行後,
會執行爲該事件綁定的回調函數。架構
Node採用了事件驅動機制,而EventEmitter就是Node實現事件驅動的基礎
Node的events模塊只提供了一個EventEmitter類,
這個類實現了Node異步事件驅動架構的基本模式——觀察者模式異步
class EventEmitter{ constructor(){ this.handler={}; } on(eventName,callback){ if(!this.handles[eventName]){ this.handles[eventName]=[]; } this.handles[eventName].push(callback); } emit(eventName,...arg){ if(this.handles[eventName]){ for(var i=0;i<this.handles[eventName].length;i++){ this.handles[eventName][i](...arg); } } } 調用 let event = new EventEmitter(); event.on('click',function(str){ console.log(str); }); event.emit('click','Yeah!'); //輸出Yeah!