Methode Beschreibung:
Event emittieren und mehrere optionale Parameter an die Parametertabelle des Ereignishörers übergeben.
Grammatik:
Die Codekopie lautet wie folgt:
Emitter.Emit (Ereignis, [arg1], [arg2], [...])
Parameter empfangen:
Event -Event -Typ
Arg1 ~ Argn -Parameter übergeben (multiple)
Beispiel:
Die Codekopie lautet wie folgt:
var events = fordern ('Ereignisse');
var emitter = new events.eventemitter ();
emitter.on ('monevent', function (arg1, arg2) {
console.log ('hörer1', arg1, arg2);
})
emitter.on ('monevent', function (arg1, arg2) {
console.log ('hörer2', arg1, arg2);
})
Emitter.Emit ('Ein Event', 'Byvoid', 1991);
Quellcode:
Die Codekopie lautet wie folgt:
EventEmitter.prototype.emit = function (type) {
var er, handler, len, args, ich, hörer;
if (! this._events)
this._events = {};
// Wenn es keinen 'Fehler' Ereignishörer gibt, dann werfen.
if (type === 'Fehler') {
if (! this._events.Error ||
(util.isObject (this._events.Error) &&! this._events.error.length)) {
er = Argumente [1];
if (this.domain) {
if (! er) er = neuer TypeRror ('nicht erfasste, nicht spezifizierte "Fehler" Ereignis ");
er.domainemitter = this;
er.domain = this.domain;
Er.DomainThrown = false;
this.domain.emit ('error', er);
} else if (ER -Instanzfehler) {
er werfen; // Ereignis von 'Fehler' nicht behandelt
} anders {
typeerror ('ungekennt, nicht spezifiziert "Fehler" Ereignis ");
}
false zurückgeben;
}
}
Handler = this._events [Typ];
if (util.isundeded (Handler))
false zurückgeben;
if (this.domain && this! == prozess)
this.domain.enter ();
if (util.isfunction (Handler)) {
Switch (Argumente.length) {
// schnelle Fälle
Fall 1:
Handler.Call (dies);
brechen;
Fall 2:
Handler.Call (this, Argumente [1]);
brechen;
Fall 3:
Handler.Call (this, Argumente [1], Argumente [2]);
brechen;
// Langsamer
Standard:
Len = Argumente.Length;
args = new Array (len - 1);
für (i = 1; i <len; i ++)
args [i - 1] = argumente [i];
Handler.Apply (this, args);
}
} else if (util.isObject (Handler)) {
Len = Argumente.Length;
args = new Array (len - 1);
für (i = 1; i <len; i ++)
args [i - 1] = argumente [i];
Hörer = Handler.lice ();
Len = Hörer.Length;
für (i = 0; i <len; i ++)
Zuhörer [i] .Apply (dies, Args);
}
if (this.domain && this! == prozess)
this.domain.exit ();
zurückkehren;
};