Full Stack mit KI · Modul 2: JavaScript & TypeScript

Lektion 7 von 8Text 13 Min.

Asynchron denken: Promises, async und await

Worum es geht: Alles, was Zeit braucht – eine Anfrage an einen Server, das Lesen einer Datei, ein Aufruf an ein KI-Modell –, läuft asynchron. Der Code wartet nicht, sondern macht weiter und kommt später zurück. Wer dieses Prinzip nicht verstanden hat, schreibt Code, der scheinbar zufällig funktioniert.

1. Das Grundprinzip

JavaScript bearbeitet immer nur eine Sache gleichzeitig. Damit die Seite nicht einfriert, während eine Anfrage unterwegs ist, wird alles Langwierige zurückgestellt: Der Code läuft weiter, und sobald die Antwort da ist, wird der zurückgestellte Teil nachgeholt. Das erklärt die Reihenfolge im ersten Übungsschritt – und die häufigste Verwirrung für Einsteiger.

2. Die drei Begriffe

BegriffBedeutung
PromiseEin Versprechen auf einen Wert, der später kommt – oder auf einen Fehler
asyncKennzeichnet eine Funktion, die asynchron arbeitet und selbst ein Promise zurückgibt
awaitWartet an dieser Stelle auf das Ergebnis – nur innerhalb einer async-Funktion erlaubt

3. Die drei häufigsten Fehler

Das vergessene await. Ohne await bekommen Sie das Versprechen statt des Werts – im Code steht dann [object Promise] oder undefined. Dieser Fehler kommt auch bei KI-generiertem Code regelmäßig vor.

Fehlende Fehlerbehandlung. Jede Netzwerkanfrage kann scheitern. Ohne try/catch bricht die Anwendung ab oder bleibt stumm stehen – und der Besucher sieht einen ewigen Ladezustand.

Unnötiges Nacheinander. Drei Abfragen, die nichts voneinander wissen, nacheinander zu starten, verdreifacht die Wartezeit ohne Grund. Promise.all löst das in einer Zeile.

Wenn eine Seite unerklärlich langsam ist, suchen Sie nach await-Aufrufen, die hintereinanderstehen und nichts voneinander brauchen. Das ist die häufigste Ursache – auch in Code, den ein Agent geschrieben hat.

4. In der Praxis

In echten Anwendungen sieht das so aus: Eine Anfrage an eine Schnittstelle mit fetch, umschlossen von try/catch, mit einem Ladezustand davor und einer Fehlermeldung für den Fall, dass es schiefgeht. Genau diese vier Teile – laden, Erfolg, Fehler, leer – sind dieselben Zustände, die im Konzeptkurs als Pflicht für jede Ansicht beschrieben sind. Technik und Gestaltung treffen sich hier.

5. Häufige Fragen

Was ist der Unterschied zu Threads? Threads laufen wirklich gleichzeitig, JavaScript nicht. Es wechselt nur geschickt zwischen wartenden Aufgaben. Für den Alltag genügt: Warten blockiert nichts, aber echtes Rechnen schon.

Wann brauche ich das in Python? Dort gibt es dieselben Begriffe mit async def und await. Für einfache Skripte braucht man es selten, für Webserver und viele gleichzeitige Anfragen dagegen fast immer.

Stand: September 2026. Die Übungen laufen vollständig in Ihrem Browser – es wird nichts gespeichert oder übertragen.

Fortschritt sichern

Kostenlos registrieren, Lektionen abhaken und 3 Kernideen als Karteikarten wiederholen.