/ Software-Entwicklung / the next big thing: Einführung in Node.js, Folge 7: Callbacks verstehen

the next big thing: Einführung in Node.js, Folge 7: Callbacks verstehen

Gerfried Steube on February 21, 2017 - 5:30 am in Software-Entwicklung

In Node.js gehört der Umgang mit asynchronem Code zum Alltag. Dazu greift man in der Regel auf den Einsatz von Callbacks zurück. Doch der Umkehrschluss gilt nicht: Nicht alle Callbacks sind asynchron. Woran erkennt man asynchrone Callbacks, und worauf gilt es bei ihrer Verwendung zu achten?

Regelmäßig begegnet man der Behauptung, Callbacks seien in Node.js stets asynchron. Das ist jedoch falsch. Zwar kommt man bei asynchronem Code automatisch mit Callbacks in Berührung, doch das Gegenteil gilt nicht. Tatsächlich gibt es in JavaScript sogar etliche Funktionen, die Callbacks auf synchrone Art verwenden, beispielsweise map und reduce.

Einführung in Node.js

  • Folge 1: Node.js installieren
  • Folge 2: Erste Schritte
  • Folge 3: Module verwenden
  • Folge 4: Web-APIs entwickeln
  • Folge 5: Middleware
  • Folge 6: Auf das Dateisystem zugreifen
  • Folge 7: Callbacks verstehen

Für asynchrone Callbacks gelten dabei andere Regeln als für ihre synchronen Pendants. Das betrifft zum Beispiel die Fehlerbehandlung, bei der man im asynchronen Fall mit try und catch nicht allzu weit kommt. Stattdessen gilt es, den err-Parameter auszuwerten.

Besonderes Augenmerk verdienen zudem auch Funktionen, die Callbacks teilweise synchron, teilweise asynchron aufrufen. Hier gilt es, die synchronen Aufrufe gegebenenfalls in asynchrone zu überführen, um eine deterministische Ausführung zu gewährleisten. Dazu stellt Node.js verschiedene Funktionen zur Verfügung.

Wie das alles funktioniert und worauf es dabei zu achten gilt, zeigt das folgende Video:

Einführung in Node.js, Folge 7: Callbacks verstehen

tl;dr: Node.js kennt synchrone und asynchrone Callbacks. Für die asynchrone Variante gelten andere Regeln, beispielsweise bei der Fehlerbehandlung. Unter Umständen muss synchroner Code in asynchronen Code überführt werden, um eine deterministische Ausführung zu gewährleisten.

Read more on: Source

Comments are disabled