ObjectEventEmitter
EventEmitter ist ein ereignisauslösendes Objekt, mit dem das Beobachtermuster festgelegt werden kann. Alle Objekte, die die Ereignisauslösung unterstützen, erben davon
Wenn ein Ereignis ausgelöst wird, werden alle mit dem Ereignis verknüpften Listener asynchron aufgerufen. Es ermöglicht uns auch, Code zu erstellen, der hochgradig anpassbar und flexibel ist.
Zu den häufig verwendeten Funktionen gehören: addListener/on, Once, RemoveListener/Off, RemoveAllListeners und Emit.
Hier ist ein Beispielcode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23var fs = require('fs');
var EventEmitter = require('events');
var event = new EventEmitter();
event.on('read_file', function(filename) {
fs.readFile(filename, 'utf8', function(err, data) {
if (err) {
event.emit('error', err);
return;
}
event.emit('show_content', data);
});
});
event.on('error', function(err) {
console.log(`Error ${err}`);
});
event.on('show_content', function(content) {
console.log(content);
});
event.emit('read_file', 'test.txt');
event.emit('read_file', 'test.txt')
Wenn der obige Beispielcode ausgeführt wird, lauscht das Ereignis-Emitter-Instanzereignis zuerst auf das Ereignis „read_file“ und löst dann den Vorgang zum Lesen der Datei aus , wenn das Ereignis ausgelöst wird ( ). Wenn das Lesen erfolgreich ist, wird das Ereignis „show_content“ ausgelöst. Zu diesem Zeitpunkt wird die Funktion ausgeführt, die das Ereignis „show_content“ abgehört hat, und der Dateiinhalt wird angezeigt. Wenn beim Lesen der Datei ein Fehler auftritt, wird das Ereignis „error“ ausgelöst und der Fehler des Vorgangs behandelt.
Dieses Modell bietet große Vorteile in Geschäftsszenarien, die sich mit asynchronen Vorgängen befassen.
Erbschaftsverhältnis
Konstrukteur
EventEmitter
Konstrukteur
1new EventEmitter();
Objekt
Ereignisauslöserobjekt
1EventEmitter new EventEmitter;
statische Eigenschaften
defaultMaxListeners
Ganzzahl, die standardmäßige globale maximale Anzahl von Listenern
1static Integer EventEmitter.defaultMaxListeners;
Mitgliedsfunktion
on
Binden Sie einen Event-Handler an das Objekt
1
2Object EventEmitter.on(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object EventEmitter.on(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
addListener
Binden Sie einen Event-Handler an das Objekt
1
2Object EventEmitter.addListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object EventEmitter.addListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object EventEmitter.prependListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object EventEmitter.prependListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
once
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1
2Object EventEmitter.once(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1Object EventEmitter.once(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependOnceListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object EventEmitter.prependOnceListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
off
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object EventEmitter.off(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object EventEmitter.off(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object EventEmitter.off(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeListener
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object EventEmitter.removeListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object EventEmitter.removeListener(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object EventEmitter.removeListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeAllListeners
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object EventEmitter.removeAllListeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object EventEmitter.removeAllListeners(Array evs = []);
Aufrufparameter:
- evs: Array, geben Sie den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
setMaxListeners
Die Standardbeschränkung für die Anzahl der Listener dient nur der Kompatibilität
1EventEmitter.setMaxListeners(Integer n);
Aufrufparameter:
- n: Ganzzahl, geben Sie die Anzahl der Ereignisse an
getMaxListeners
Ruft nur aus Kompatibilitätsgründen die standardmäßige maximale Anzahl von Listenern ab
1Integer EventEmitter.getMaxListeners();
Rückgabeergebnisse:
- Integer, gibt die Standardgrenzmenge zurück
listeners
Fragen Sie das Listener-Array nach dem angegebenen Ereignis des Objekts ab
1Array EventEmitter.listeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Array, gibt das Listener-Array für das angegebene Ereignis zurück
listenerCount
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1Integer EventEmitter.listenerCount(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
Aufrufparameter:
- o: Wert, gibt das Objekt der Abfrage an
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
eventNames
Name des Abfrage-Listener-Ereignisses
1Array EventEmitter.eventNames();
Rückgabeergebnisse:
- Array, gibt ein Array von Ereignisnamen zurück
emit
Ein Ereignis aktiv auslösen
1
2Boolean EventEmitter.emit(String ev,
...args);
Aufrufparameter:
- ev: String, Ereignisname
- args: ..., Ereignisparameter werden an die Ereignisverarbeitungsfunktion übergeben
Rückgabeergebnisse:
- Boolean, gibt den Ereignisauslöserstatus zurück, gibt „true“ zurück, wenn ein Antwortereignis vorliegt, andernfalls wird „false“ zurückgegeben
toString
Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.
1String EventEmitter.toString();
Rückgabeergebnisse:
- String, gibt die Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.
1Value EventEmitter.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält