每日靈魂一問nodejs-eventEmitte是啥?手動實現

eventEmitte是什麼

eventEmitter是一個對事件進行監聽的對象,
說白了就是爲事件寫回調函數,
當觸發一個事件執行後,
會執行爲該事件綁定的回調函數。架構

Node採用了事件驅動機制,而EventEmitter就是Node實現事件驅動的基礎
Node的events模塊只提供了一個EventEmitter類,
這個類實現了Node異步事件驅動架構的基本模式——觀察者模式異步

手動實現eventEmitte

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!
相關文章
相關標籤/搜索