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.