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.
