Sobes.tech
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ą 1 i 4.
  • 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.