Method Description:
Registers a listener for the specified event.
Grammar:
Copy Code code as follows:
Emitter.on (event, listener)
Emitter.addlistener (event, listener)
Receive parameters:
Event (String) events type
callback function when listener (function) triggers an event
Example:
Copy Code code as follows:
Server.on (' Connection ', function (stream) {
Console.log (' someone connected! ');
});
Source:
Copy Code code as follows:
EventEmitter.prototype.addListener = function (type, listener) {
var m;
if (!util.isfunction (listener))
Throw TypeError (' listener must be a function ');
if (!this._events)
This._events = {};
To avoid recursion into the case, that type = = "Newlistener"! Before
Adding it to the listeners, the emit "Newlistener".
if (This._events.newlistener)
This.emit (' Newlistener ', type,
Util.isfunction (Listener.listener)?
Listener.listener:listener);
if (!this._events[type])
Optimize the case of one listener. Don ' t need the extra array object.
This._events[type] = listener;
else if (Util.isobject (This._events[type]))
If we ' ve already got an array, just append.
This._events[type].push (listener);
Else
Adding the second element, need to change to array.
This._events[type] = [This._events[type], listener];
Check for listener leak
if (Util.isobject (This._events[type]) &&!this._events[type].warned) {
var m;
if (!util.isundefined (this._maxlisteners)) {
m = this._maxlisteners;
} else {
m = eventemitter.defaultmaxlisteners;
}
if (M && m > 0 && this._events[type].length > m) {
This._events[type].warned = true;
Console.error (node) warning:possible eventemitter memory ' +
' Leak detected. %d listeners added. ' +
' Use Emitter.setmaxlisteners () to increase limit. ',
This._events[type].length);
Console.trace ();
}
}
return this;
};