每日灵魂一问nodejs-eventEmitte是啥?手动实现
Posted NANA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日灵魂一问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!
以上是关于每日灵魂一问nodejs-eventEmitte是啥?手动实现的主要内容,如果未能解决你的问题,请参考以下文章