Sobes.tech
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í 1 a 4.
  • 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.