Back to questions
СБЕР
Middle
2
Задача на порядок вызова console.log: расставьте порядок вывода логов (часть 1 — синхронный код, часть 2 — с асинхронным кодом, промисами и setTimeout).
Companies where asked
Answer from AI
sobes.tech AI
Рассмотрим порядок вывода console.log для двух частей:
Часть 1 — синхронный код
Все console.log выполняются последовательно в порядке написания.
console.log('1');
console.log('2');
console.log('3');
// Вывод: 1, 2, 3
Часть 2 — с асинхронным кодом, промисами и setTimeout
Пример:
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
Порядок вывода:
'1'— синхронный код'4'— синхронный код'3'— микротаск (промис) после синхронного кода'2'— макротаск (setTimeout) после микротасков
Итог: 1, 4, 3, 2
Это связано с тем, что микротаски (промисы) выполняются сразу после текущего стека вызовов, а макротаски (setTimeout) — позже.