Sobes.tech
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. '1' — синхронный код
  2. '4' — синхронный код
  3. '3' — микротаск (промис) после синхронного кода
  4. '2' — макротаск (setTimeout) после микротасков

Итог: 1, 4, 3, 2

Это связано с тем, что микротаски (промисы) выполняются сразу после текущего стека вызовов, а макротаски (setTimeout) — позже.