Rumah  >  Artikel  >  hujung hadapan web  >  Arahan untuk menggunakan kaedah emitter.emit dalam node.js_node.js

Arahan untuk menggunakan kaedah emitter.emit dalam node.js_node.js

WBOY
WBOYasal
2016-05-16 16:27:532625semak imbas

Penerangan kaedah:

Pancarkan acara acara dan hantar beberapa parameter pilihan kepada senarai parameter pendengar acara.

Tatabahasa:

Salin kod Kod adalah seperti berikut:

emitter.emit(event, [arg1], [arg2], [...])

Terima parameter:

Jenis acara acara

arg1 ~ argN Lulus parameter (berbilang)

Contoh:

Salin kod Kod adalah seperti berikut:

var peristiwa = memerlukan('acara');
var pemancar = peristiwa baharu.EventEmitter();

emitter.on('someEvent', function(arg1, arg2){
console.log('pendengar1', arg1, arg2);
})

emitter.on('someEvent', function(arg1, arg2){
console.log('pendengar2', arg1, arg2);
})

emitter.emit('someEvent', 'byvoid', 1991);

Kod sumber:

Salin kod Kod adalah seperti berikut:

EventEmitter.prototype.emit = function(type) {
  var er, pengendali, len, args, i, pendengar;
  jika (!ini._acara)
    this._events = {};
  // Jika tiada pendengar acara 'error' maka buang.
  jika (taip === 'ralat') {
    jika (!this._events.error ||
        (util.isObject(this._events.error) && !this._events.error.length)) {
      er = hujah[1];
      jika (domain.ini) {
        if (!er) er = new TypeError('Tidak ditangkap, peristiwa "ralat" tidak ditentukan.');
        er.domainEmitter = ini;
        er.domain = this.domain;
        er.domainThrown = palsu;
        this.domain.emit('error', er);
      } lain jika (er instanceof Ralat) {
        buang er; // Acara 'ralat' tidak dikendalikan
      } lain {
        throw TypeError('Acara "ralat" tidak ditangkap, tidak ditentukan.');
      }
      pulangkan palsu;
    }
  }
  pengendali = ini._events[type];
  jika (util.isUndefined(pengendali))
    pulangkan palsu;
  jika (domain.ini && ini !== proses)
    this.domain.enter();
  jika (util.isFunction(pengendali)) {
    suis (arguments.length) {
      // kes cepat
      kes 1:
        handler.call(this);
        rehat;
      kes 2:
        handler.call(this, arguments[1]);
        rehat;
      kes 3:
        handler.call(ini, hujah[1], hujah[2]);
        rehat;
      // lebih perlahan
      lalai:
        len = hujah.panjang;
        args = Array baharu(len - 1);
        untuk (i = 1; i < len; i )
          args[i - 1] = hujah[i];
        handler.apply(this, args);
    }
  } else if (util.isObject(handler)) {
    len = hujah.panjang;
    args = Array baharu(len - 1);
    untuk (i = 1; i < len; i )
      args[i - 1] = hujah[i];
    pendengar = handler.slice();
    len = pendengar.panjang;
    untuk (i = 0; i < len; i )
      pendengar[i].apply(this, args);
  }
  jika (domain.ini && ini !== proses)
    this.domain.exit();
  kembali benar;
};
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn