Sobes.tech
Middle

В какъв ред ще се покажат числата в кода с Promise, setTimeout и синхронен код (Event Loop)?

sobes.tech AI

Отговор от AI

В JavaScript редът на изпълнение на кода с Promise, setTimeout и синхронен код се определя от Event Loop и опашките за микротаскове (microtasks) и макротаскове (macrotasks).

Нека разгледаме пример:

console.log('1');

setTimeout(() => {
  console.log('2');
}, 0);

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

Обяснение:

  • Първо се изпълнява целият синхронен код, затова се показват 1 и 4.
  • След това се изпълняват микротасковете (Promise), показвайки 3.
  • След това се изпълняват макротасковете (setTimeout), показвайки 2.

Финалният ред на изход е: 1, 4, 3, 2.

Така синхронният код се изпълнява първи, след това микротасковете (Promise), и накрая макротасковете (setTimeout). Това е ключов момент за разбирането на Event Loop в JavaScript.