Middle
Exercice sur l'ordre d'appel de console.log : organisez l'ordre d'affichage des logs (partie 1 — code synchrone, partie 2 — avec code asynchrone, promesses et setTimeout).
sobes.tech IA
Réponse de l'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) — позже.