Methodenbeschreibung:
Registrieren Sie einen Listener für das angegebene Ereignis.
Grammatik:
emitter.on(event, listener)
emitter.addListener(event, listener)
Empfangsparameter:
Ereignis (Zeichenfolge) Ereignistyp
Listener (Funktion) Die Rückruffunktion, wenn ein Ereignis ausgelöst wird
Beispiel:
server.on('connection', Funktion (Stream) {
console.log('jemand verbunden!');
});
Quellcode:
EventEmitter.prototype.addListener = function(type, listener) {
var m;
if (!util.isFunction(listener))
Throw TypeError('listener must be a function');
if (!this._events)
This._events = {};
// Um eine Rekursion zu vermeiden, geben Sie === „newListener“ Before
ein
// Füge es den Listenern hinzu und gebe zuerst „newListener“ aus.
if (this._events.newListener)
This.emit('newListener', type,
util.isFunction(listener.listener) ?
Listener.listener : listener);
if (!this._events[type])
// Den Fall eines Listeners optimieren. Das zusätzliche Array-Objekt ist nicht erforderlich.
This._events[type] = listener;
else if (util.isObject(this._events[type]))
// Wenn wir bereits ein Array haben, fügen Sie es einfach an.
This._events[type].push(listener);
sonst
// Beim Hinzufügen des zweiten Elements muss in ein Array geändert werden.
This._events[type] = [this._events[type], listener];
// Auf Listener-Leck prüfen
if (util.isObject(this._events[type]) && !this._events[type].warned) {
var m;
If (!util.isUndefined(this._maxListeners)) {
m = this._maxListeners;
} sonst {
m = EventEmitter.defaultMaxListeners;
}
If (m && m > 0 && this._events[type].length > m) {
This._events[type].warned = true;
console.error('(Knoten) Warnung: Möglicher EventEmitter-Speicher '
'Leck erkannt. %d Zuhörer hinzugefügt.'
'Verwenden Sie emitter.setMaxListeners(), um das Limit zu erhöhen.',
This._events[type].length);
console.trace();
}
}
gib dies zurück;
};
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn