Middle
V jakém pořadí se zobrazí čísla v kódu s Promise, setTimeout a synchronním kódem (Event Loop)?
sobes.tech AI
Odpověď od AI
V JavaScriptu je pořadí provádění kódu s Promise, setTimeout a synchronním kódem určeno Event Loopem a frontami mikroúkolů (microtasks) a makroúkolů (macrotasks).
Podívejme se na příklad:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Vysvětlení:
- Nejprve se provede celý synchronní kód, takže se zobrazí
1a4. - Poté se provedou mikroúkoly (Promise), zobrazí se
3. - Následně se provedou makroúkoly (setTimeout), zobrazí se
2.
Konečný pořadí výstupu je: 1, 4, 3, 2.
Synchronní kód se tedy provádí jako první, následované mikroúkoly (Promise) a nakonec makroúkoly (setTimeout). To je klíčový bod pro pochopení Event Loop v JavaScriptu.