warum async-Code nicht in der erwarteten Reihenfolge läuft
JavaScript ist single-threaded, aber nicht sequenziell. Der Event Loop bestimmt die Ausführungsreihenfolge von synchronem Code, Promises, Timern und Callbacks. Wer den Unterschied zwischen Mikrotasks und Makrotasks nicht versteht, schreibt asynchronen Code, der rätselhaft falsch läuft.
Inhaltsverzeichnis
- 1. JavaScript ist single-threaded – was bedeutet das konkret?
- 2. Der Call Stack: wie JavaScript Funktionen ausführt
- 3. Makrotasks: setTimeout, setInterval und I/O-Callbacks
- 4. Mikrotasks: Promise-Callbacks und queueMicrotask
- 5. Die Ausführungsreihenfolge: was passiert wann?
- 6. async/await und der Event Loop: was await wirklich tut
- 7. Der Event Loop in Node.js: libuv und Phasen
- 8. Task Starving: wenn Mikrotasks