Zurück zu JavaScript

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.