JavaScript
Advanced Async
Mehrere Promises koordinieren, Anfragen abbrechen, parallel statt nacheinander laden — die Muster für echte Apps.
Promise.all
Promise.all wartet auf alle Promises und liefert die Ergebnisse als Array — schlägt aber komplett fehl, wenn eines abgelehnt wird.
Paralleles Laden ist oft deutlich schneller als await nacheinander.
<Promise.all()>
Parallel laden
const [statusRes, statsRes] = await Promise.all([
fetch('/api/status'),
fetch('/api/quiz/stats/123')
]);allSettled, race, any
Promise.allSettled wartet auf alle und liefert pro Promise Erfolg oder Fehler — nichts geht verloren.
Promise.race nimmt das erste fertige Ergebnis, Promise.any das erste erfolgreiche.
<Promise.allSettled()><Promise.race()>
Abbrechen mit AbortController
AbortController liefert ein Signal, das fetch abbrechen kann — etwa wenn der Nutzer weiter navigiert.
Timeouts fuer Anfragen lassen sich damit sauber umsetzen.
<AbortController>
Anfrage abbrechen
const controller = new AbortController();
setTimeout(() => controller.abort(), 5000);
fetch('/api/langsam', { signal: controller.signal })
.catch(() => console.log('Abgebrochen'));Fortschritt
Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.