Middle
W jakiej kolejności wyświetlą się liczby w kodzie z Promise, setTimeout i kodem synchronicznym (Event Loop)?
sobes.tech AI
Odpowiedź od AI
W JavaScript kolejność wykonywania kodu z Promise, setTimeout i kodu synchronicznego jest determinowana przez Event Loop oraz kolejki mikrotasków (microtasks) i makrotasków (macrotasks).
Rozważmy przykład:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Wyjaśnienie:
- Najpierw wykonywany jest cały kod synchroniczny, więc wyświetlane są
1i4. - Następnie wykonywane są mikrotaski (Promise), wyświetlając
3. - Po nich wykonywane są makrotaski (setTimeout), wyświetlając
2.
Ostateczny porządek wyjścia: 1, 4, 3, 2.
W ten sposób kod synchroniczny jest wykonywany jako pierwszy, następnie mikrotaski (Promise), a na końcu makrotaski (setTimeout). To kluczowy punkt do zrozumienia Event Loop w JavaScript.