Maison  >  Article  >  interface Web  >  Instructions d'utilisation de la méthode émetteur.emit dans node.js_node.js

Instructions d'utilisation de la méthode émetteur.emit dans node.js_node.js

WBOY
WBOYoriginal
2016-05-16 16:27:532589parcourir

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 :

Copier le code Le code est le suivant :

émetteur.emit(événement, [arg1], [arg2], [...])

Paramètres de réception :

événement Type d'événement

arg1 ~ argN Paramètres transmis (plusieurs)

Exemple :

Copier le code Le code est le suivant :

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 :

Copier le code Le code est le suivant :

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