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!