Heim > Artikel > WeChat-Applet > Einführung in Methoden zur Verwendung von Ereignis-Listenern bei der Entwicklung von Miniprogrammen
Ereignisüberwachung wird häufig in der Entwicklung verwendet. In Programmiersprachen ist ein Listener ein Gerät, das speziell dazu verwendet wird, Ereignisse oder Statusänderungen zu überwachen, die bei anderen Objekten auftreten Wenn dem überwachten Objekt etwas passiert, ergreifen Sie sofort entsprechende Maßnahmen. Der Zuhörer zeichnet sich durch passives Triggern aus und die Ausführung von Triggerereignissen erfolgt unmittelbar. Es gibt auch einen solchen Ereignisbehandlungsmechanismus in der Entwicklung kleiner Programme. Alle asynchronen E/A-Vorgänge in Node.js senden nach Abschluss ein Ereignis an die Ereigniswarteschlange. Viele Objekte in Node.js geben Ereignisse aus: Ein net.Server-Objekt gibt jedes Mal ein Ereignis aus, wenn eine neue Verbindung hergestellt wird, und ein fs.readStream-Objekt gibt ein Ereignis aus, wenn eine Datei geöffnet wird. Alle diese ereignisgenerierenden Objekte sind Instanzen von events.EventEmitter. Also Wie verwendet man Event-Listener bei der Produktion von Miniprogrammen?
Das Ereignismodul stellt nur ein Objekt bereit: events.EventEmitter
Der Kern von EventEmitter ist die Kapselung von Ereignisauslöse- und Ereignis-Listener-Funktionen.
Jedes Ereignis von EventEmitter besteht aus einem Ereignisnamen und mehreren Parametern. Der Ereignisname ist eine Zeichenfolge, die normalerweise eine bestimmte Semantik ausdrückt. Für jedes Ereignis unterstützt EventEmitter mehrere Ereignis-Listener.
Wenn ein Ereignis ausgelöst wird, werden die für dieses Ereignis registrierten Ereignis-Listener nacheinander aufgerufen und die Ereignisparameter werden als Rückruffunktionsparameter übergeben.
//event.js 文件 var events =require(\'events\'); var emitter= new events.EventEmitter(); emitter.on(\'someEvent\',function(arg1, arg2) { console.log(\'listener1\', arg1, arg2); }); emitter.on(\'someEvent\',function(arg1, arg2) { console.log(\'listener2\', arg1, arg2); }); emitter.emit(\'someEvent\',\'arg1 参数\', \'arg2 参数\');
addListener(event, listener) Fügt einen Listener für das angegebene Ereignis am Ende des Listener-Arrays hinzu.
on(event,listener) registriert einen Listener für das angegebene Ereignis und akzeptiert ein String-Ereignis und eine Rückruffunktion.
once(event,listener) registriert einen einmaligen Listener für das angegebene Ereignis, d. h. der Listener wird höchstens einmal ausgelöst und sofort nach dem Auslösen freigegeben.
removeListener(event,listener) Entfernt einen Listener für das angegebene Ereignis. Der Listener muss ein registrierter Listener für das Ereignis sein.
Es akzeptiert zwei Parameter, der erste ist der Ereignisname und der zweite der Name der Rückruffunktion.
removeAllListeners([event]) entfernt alle Listener für alle Ereignisse. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
setMaxListeners(n) Standardmäßig gibt EventEmitters eine Warnmeldung aus, wenn Sie mehr als 10 Listener hinzufügen. Die Funktion setMaxListeners wird verwendet, um das Standardlimit der Anzahl der Listener zu erhöhen.
listeners(event) gibt das Listener-Array für das angegebene Ereignis zurück.
emit(event,[arg1], [arg2], […]) Führt jeden Listener in der Reihenfolge der Parameter aus. Wenn das Ereignis einen registrierten Listener hat, gibt es true zurück, andernfalls gibt es false zurück.
ListenerCount(emitter,event) in der Klassenmethode gibt die Anzahl der Listener für das angegebene Ereignis zurück.
Ereignisse abhören
removeListener entfernt einen Listener aus dem angegebenen Listener-Array. Es ist zu beachten, dass durch diesen Vorgang der Index der Listener nach dem gelöschten Listener geändert wird.
Ereignis – Zeichenfolge, Ereignisname
Listener – Ereignisverarbeitungsfunktion
newListener Dieses Ereignis wird ausgelöst, wenn ein neuer Listener hinzugefügt wird.
Ereignis – Zeichenfolge, Ereignisname
Listener – Ereignisverarbeitungsfunktion
Fehler Es enthält Fehlersemantik. Wir lösen normalerweise das Fehlerereignis aus.
Wenn ein Fehler ausgelöst wird, legt EventEmitter fest, dass Node.js ihn als Ausnahme behandelt, das Programm beendet und eine Fehlermeldung ausgibt, wenn kein antwortender Listener vorhanden ist. Generell müssen wir Listener für Objekte einrichten, die Fehlerereignisse auslösen, um zu verhindern, dass das gesamte Programm abstürzt, wenn ein Fehler auftritt.
Meistens verwenden wir EventEmitter nicht direkt, sondern erben ihn im Objekt. Einschließlich fs, net, http, solange die Kernmodule, die die Ereignisantwort unterstützen, Unterklassen von EventEmitter sind. Dies hat den Vorteil, dass die Ereignisimplementierung eines Objekts mit einer bestimmten Entitätsfunktion der Semantik entspricht und die Überwachung und Ausgabe von Ereignissen Methoden eines Objekts sein sollten. Zweitens basiert der Objektmechanismus von js auf dem Prototyp und unterstützt die teilweise Mehrfachvererbung. Durch die Vererbung von EventEmitter wird die ursprüngliche Vererbungsbeziehung des Objekts nicht gestört.
Empfohlen: „Mini-Tutorial zur Programmentwicklung“
Das obige ist der detaillierte Inhalt vonEinführung in Methoden zur Verwendung von Ereignis-Listenern bei der Entwicklung von Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!