对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;

};