Middle
Tarefa sobre a ordem de chamada do console.log: organize a ordem de saída dos logs (parte 1 — código síncrono, parte 2 — com código assíncrono, promessas e setTimeout).
sobes.tech IA
Resposta da IA
Рассмотрим порядок вывода 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) — позже.