Back to questions
Middle
4
В какой последовательности выведутся числа в коде с Promise, setTimeout и синхронным кодом (Event Loop)?
Companies where asked
МПФИТ
Answer from AI
sobes.tech 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.