JavaScript — Grundlagen
Kapitel 5 · Theorie

Async — Promises & async/await

JavaScript ist single-threaded — wenn etwas dauert (Netzwerk, Datei), darf das den Browser nicht blockieren. Lösung: Asynchroner Code.

Promises — ein Versprechen für später

fetch("https://api.example.com/daten")
  .then(response => response.json())
  .then(daten => console.log(daten))
  .catch(err => console.error("Fehler:", err))
  .finally(() => console.log("Fertig"));

async/await — moderner und lesbarer

async function ladeDaten() {
  try {
    const response = await fetch("https://api.example.com/daten");
    const daten = await response.json();
    console.log(daten);
  } catch (err) {
    console.error("Fehler:", err);
  }
}
ladeDaten();

Mehrere parallel — Promise.all

const urls = ["url1", "url2", "url3"];
const results = await Promise.all(
  urls.map(u => fetch(u).then(r => r.json()))
);
console.log(results);   // Array der Antworten
🔄
Event LoopJavaScript ist nicht parallel — es ist nebenläufig. Async-Aufrufe gehen in eine Warteschlange. Der Event Loop holt sie ab, sobald die Aktion (Fetch, Timer) fertig ist. Ein Modell, das Web-UIs flüssig hält.
Zurück zu Informatik