JavaScript
Event Loop
JavaScript hat einen einzigen Thread. Der Event Loop entscheidet, wann Callbacks, Promises und Timer laufen.
Call Stack und Queue
Synchroner Code läuft auf dem Call Stack, eine Funktion nach der anderen.
Asynchrone Ergebnisse (Timer, fetch) landen in Warteschlangen. Der Event Loop schiebt sie erst auf den Stack, wenn er leer ist.
<call stack><event loop>
Micro- vs. Macrotasks
Promise-Callbacks sind Microtasks und laufen vor dem nächsten Macrotask (setTimeout).
Deshalb kommt "Promise" vor "Timeout" — auch bei 0 Millisekunden.
<microtask><macrotask>
Reihenfolge
console.log('1: sync');
setTimeout(() => console.log('4: timeout'), 0);
Promise.resolve().then(() => console.log('3: promise'));
console.log('2: sync ende');
// Ausgabe: 1, 2, 3, 4Fortschritt
Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.