Description de la méthode :
Émettez un événement événement et transmettez plusieurs paramètres facultatifs à la liste des paramètres de l'écouteur d'événement.
Grammaire :
émetteur.emit(événement, [arg1], [arg2], [...])
Paramètres de réception :
événement Type d'événement
arg1 ~ argN Paramètres transmis (plusieurs)
Exemple :
var events = require('events');
var émetteur = nouveaux événements.EventEmitter();
émetteur.on('someEvent', function(arg1, arg2){
console.log('listener1', arg1, arg2);
})
émetteur.on('someEvent', function(arg1, arg2){
console.log('listener2', arg1, arg2);
})
émetteur.emit('someEvent', 'byvoid', 1991);
Code source :
EventEmitter.prototype.emit = fonction (type) {
var euh, gestionnaire, len, args, je, auditeurs ;
si (!this._events)
this._events = {};
// S'il n'y a pas d'écouteur d'événement « erreur », lancez-le.
if (tapez === 'erreur') {
si (!this._events.error ||
(util.isObject(this._events.error) && !this._events.error.length)) {
euh = arguments[1];
si (ce.domaine) {
if (!er) er = new TypeError('Événement "erreur" non capturé et non spécifié.');
er.domainEmitter = this;
er.domain = this.domain;
er.domainThrown = false;
this.domain.emit('error', euh);
} else if (euh instance d'erreur) {
lanceur euh; // Événement 'erreur' non géré
} autre {
throw TypeError('Événement "erreur" non capturé et non spécifié.');
>
retourner faux ;
>
>
gestionnaire = this._events[type];
if (util.isUndefined(handler))
retourner faux ;
if (this.domain && this !== processus)
this.domain.enter();
if (util.isFunction(handler)) {
commutateur (arguments.length) {
// cas rapides
cas 1 :
handler.call(this);
pause;
cas 2 :
handler.call(this, arguments[1]);
pause;
cas 3 :
handler.call(this, arguments[1], arguments[2]);
pause;
// plus lent
par défaut :
len = arguments.longueur;
args = nouveau tableau(len - 1);
pour (i = 1; i < len; i )
args[i - 1] = arguments[i];
handler.apply(this, args);
>
} sinon if (util.isObject(handler)) {
len = arguments.longueur;
args = nouveau tableau(len - 1);
pour (i = 1; i < len; i )
args[i - 1] = arguments[i];
auditeurs = handler.slice();
len = auditeurs.longueur;
pour (i = 0; i < len; i )
auditeurs[i].apply(this, args);
>
if (this.domain && this !== processus)
this.domain.exit();
renvoie vrai ;
};
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn