Description de la méthode:
Enregistrez un auditeur pour l'événement spécifié.
grammaire:
La copie de code est la suivante:
emiter.on (événement, auditeur)
Emiter.AddListener (événement, auditeur)
Recevoir des paramètres:
Type d'événement de l'événement (chaîne)
Écouteur (fonction) La fonction de rappel lorsque l'événement est déclenché
exemple:
La copie de code est la suivante:
server.on ('connexion', fonction (stream) {
console.log («quelqu'un connecté!»);
});
Code source:
La copie de code est la suivante:
EventEmitter.prototype.addListener = fonction (type, écouteur) {
var m;
if (! util.isfunction (auditeur))
Throw TypeError («L'auditeur doit être une fonction»);
if (! this._events)
this._events = {};
// Pour éviter la récursivité dans le cas ce type === "NewListener"! Avant
// l'ajout aux auditeurs, émettez d'abord "newListener".
if (this._events.newListener)
this.emit ('newListener', type,
util.isfunction (auditeur.Listener)?
auditeur.Listener: écouteur);
if (! this._events [type])
// Optimiser le cas d'un auditeur. Je n'ai pas besoin de l'objet de tableau supplémentaire.
this._events [type] = écouteur;
else if (util.isobject (this._events [type]))
// Si nous avons déjà un tableau, ajoutez simplement.
this._events [type] .push (écouteur);
autre
// ajoutant le deuxième élément, doit changer en tableau.
this._events [type] = [this._events [type], écouteur];
// Vérifiez la fuite de l'auditeur
if (util.isobject (this._events [type]) &&! this._events [type] .warned) {
var m;
if (! util.isundefined (this._maxListeners)) {
m = this._maxListeners;
} autre {
m = eventEMmitter.DefaultMaxListeners;
}
if (m && m> 0 && this._events [type] .length> m) {
this._events [type] .warned = true;
Console.Error ('(Node) Avertissement: Possible EventEmitter Memory' +
«fuite détectée. Les auditeurs de% D ajoutés. '+
«Utilisez Emitte.SetMaxListeners () pour augmenter la limite.»,
this._events [type] .length);
console.trace ();
}
}
retourner ceci;
};