Определите порядок вывода console.log в показанном примере с синхронным кодом, setTimeout, Promise и функцией.

Рассмотрим порядок вывода console.log для двух частей:

Короткий ответ

Что ответить на собеседовании

Рассмотрим порядок вывода console.log для двух частей:

Подробный разбор

Ответ с пояснениями

Рассмотрим порядок вывода 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) — позже.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку