Method Description:
Launch event events, passing several optional parameters to the event listener's parameter table.
Grammar:
Copy Code code as follows:
Emitter.emit (event, [Arg1], [arg2], [...])
Receive parameters:
Event Events Type
ARG1 ~ argn parameters passed (multiple)
Example:
Copy Code code as follows:
var events = require (' events ');
var emitter = new events. Eventemitter ();
Emitter.on (' Someevent ', function (Arg1, arg2) {
Console.log (' Listener1 ', arg1, arg2);
})
Emitter.on (' Someevent ', function (Arg1, arg2) {
Console.log (' Listener2 ', arg1, arg2);
})
Emitter.emit (' someevent ', ' Byvoid ', 1991);
Source:
Copy Code code as follows:
EventEmitter.prototype.emit = function (type) {
Var er, handler, Len, args, I, listeners;
if (!this._events)
This._events = {};
If there is no ' error ' event listener then throw.
if (type = = = ' Error ') {
if (!this._events.error | |
(Util.isobject (this._events.error) &&!this._events.error.length)) {
ER = arguments[1];
if (This.domain) {
if (!er) er = new TypeError (' uncaught, unspecified ' Error event. ');
Er.domainemitter = this;
Er.domain = This.domain;
Er.domainthrown = false;
This.domain.emit (' Error ', er);
else if (er instanceof Error) {
Throw er; Unhandled ' ERROR ' event
} else {
Throw TypeError (' uncaught, unspecified ' error ' event. ');
}
return false;
}
}
handler = This._events[type];
if (util.isundefined (handler))
return false;
if (This.domain && this!== process)
This.domain.enter ();
if (Util.isfunction (handler)) {
Switch (arguments.length) {
Fast Cases
Case 1:
Handler.call (this);
Break
Case 2:
Handler.call (this, arguments[1]);
Break
Case 3:
Handler.call (this, arguments[1], arguments[2]);
Break
Slower
Default
len = arguments.length;
args = new Array (len-1);
for (i = 1; i < Len; i++)
ARGS[I-1] = arguments[i];
Handler.apply (this, args);
}
else if (Util.isobject (handler)) {
len = arguments.length;
args = new Array (len-1);
for (i = 1; i < Len; i++)
ARGS[I-1] = arguments[i];
Listeners = Handler.slice ();
len = listeners.length;
for (i = 0; i < len; i++)
Listeners[i].apply (this, args);
}
if (This.domain && this!== process)
This.domain.exit ();
return true;
};