Einführung in Node.js, Folge 8: Events auslösen und verarbeiten

Für die asynchrone Programmierung verwendet Node.js das Konzept der Callbacks. Allerdings gibt es Szenarien, wo andere Sprachmerkmale vorzuziehen sind. Das gilt beispielsweise dann, wenn ohne voriges Zutun der Entwickler etwas einfach passiert. Zu dem Zweck kennt Node.js Events. Wie funktionieren sie, und was gilt es zu beachten?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Golo Roden

Für die asynchrone Programmierung verwendet Node.js das Konzept der Callbacks. Allerdings gibt es Szenarien, wo andere Sprachmerkmale vorzuziehen sind. Das gilt beispielsweise dann, wenn etwas ohne voriges Zutun der Entwickler einfach passiert. Zu dem Zweck kennt Node.js Events. Wie funktionieren sie und was gilt es zu beachten?

Mehr Infos

Node.js kennt zahlreiche Konstrukte für die asynchrone Programmierung. Callbacks sind nur eins davon. Ergänzt werden sie von Events, Streams, Promises und Observables. Zusätzlich gibt es noch die Schlüsselwörter yield sowie async und await. Jedes davon hat individuelle Vor- und Nachteile, weshalb die Entscheidung für oder wider eine Variante bewusst getroffen werden sollte.

Im Gegensatz zu Callbacks sind Events darauf optimiert, mehrfach ausgelöst zu werden. Dabei gibt es stets zwei Beteiligte, ein auslösendes Objekt und eine verarbeitende Funktion. Als Basis für diese Objekte dient die Klasse EventEmitter aus dem Modul events, die Funktionen zum Auslösen und Verarbeiten von Events zur Verfügung stellt.

Für den Fall, dass die Möglichkeiten der Klasse nicht genügen, gibt es außerdem verschiedene Alternativen in der npm-Registry. Allerdings sollten diese nur in besonderen Fällen herangezogen werden. In der Regel genügt EventEmitter völlig.

Wie Events funktionieren und worauf es zu achten gilt, zeigt das folgende Video:

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier eine Vimeo-Video (Vimeo LLC) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Vimeo LLC) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

tl;dr: Events sind ein alternatives Konstrukt für die asynchrone Programmierung. Sie sind auf das Weiterleiten von Ereignissen spezialisiert, die ohne voriges Zutun der Entwickler einfach passieren. Node.js stellt dazu die Klasse EventEmitter zur Verfügung. Außerdem gibt es verschiedene Alternativen in der npm-Registry. ()