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!