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

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

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