对emitter.emit方法在Node.js的使用说明
方法显示:事件事件被传递,将一些可选参数传递给事件侦听器的参数表。
Grammar:
复制代码代码如下所示:
Emitter.emit(事件,{ } { arg1,arg2 },{…})
接收参数:
事件类型
arg1 ~ argn传递参数(多)
实例uff1a
复制代码代码如下所示:
风险事件=需要('events);
VaR发射器=新events.eventemitter();
Emitter.on('someevent(arg1,arg2,功能){
console.log('listener1,arg1,arg2);
})
Emitter.on('someevent(arg1,arg2,功能){
console.log('listener2,arg1,arg2);
})
Emitter.emit('someevent ','byvoid ',1991);
源代码 uff1a
复制代码代码如下所示:
eventemitter.prototype.emit =功能(型){
Var Er,经理人,Len,参数,我的听众;
如果(!这_events)。
这_events = { };
如果有no'error'event /听众然后把。
如果(类型=错误){
如果(这_events.error | |!
(util.isobject(这个。_events。错误)!这个_events。错误。长度)){
ER =参数{ 1 };
如果(此域){
如果(!二)ER =新TypeError('uncaught,未指定的错误事件。);
Er.domainEmitter =这;
er.domain = this.domain;
er.domainthrown = false;
This.domain.emit(错误,ER);
} else if(ER是错误){
把二; / / unhandled'error'event
{人}
把TypeError('uncaught,未指定的错误事件。);
}
返回false;
}
}
处理程序=这_events {类型};
如果(util.isundefined(处理))
返回false;
如果(this.domain这!=过程)
This.domain.enter();
如果(util.isfunction(处理)){
开关(参数,长度){
快速
案例1:
handler.call(本);
打破;
案例2:
handler.call(这个论点{ 1 });
打破;
案例3:
handler.call(这个论点论据,{ 1 },{ 2 });
打破;
/慢
违约:
arguments.length len =;
args =新的数组(长度1);
为(i = 1;i;;i;+)
{ 1 } =和我争论{我};
Handler.apply(,args);
}
} else if(util.isobject(处理)){
arguments.length len =;
args =新的数组(长度1);
为(i = 1;i;;i;+)
{ 1 } =和我争论{我};
听众= handler.slice();
listeners.length len =;
为(i = 0;i;;i;+)
听众{我}。申请(这个,args);
}
如果(this.domain这!=过程)
This.domain.exit();
返回true;
};