Zwei Schlüsselwörter, mit denen sich asynchroner Code wie gewöhnlicher lesen lässt.
- async / await
Schlüsselwörter, mit denen sich auf ein Promise warten lässt, ohne Verkettung zu schreiben.
Beispiel: „Ein await steht nur in einer Funktion, die als async gekennzeichnet ist.“
Dieselbe Sache, lesbarer
async function preise_laden() {
try {
const antwort = await fetch('/api/preise');
if (!antwort.ok) throw new Error(antwort.status);
const daten = await antwort.json();
zeigen(daten);
} catch (fehler) {
melden(fehler);
}
}Hinter den Kulissen sind es weiterhin Promises. Der Gewinn ist die Lesbarkeit: Der Ablauf steht von oben nach unten, und Fehler lassen sich mit dem gewohnten try/catch auffangen.
Die Falle
Zwei unabhängige Abfragen nacheinander mit await dauern doppelt so lange wie nötig. Wer beide gleichzeitig starten will, startet sie zuerst und wartet dann mit Promise.all() gemeinsam.