Что будет выведено в консоль в примере с setTimeout, Promise, resolve и then? Объясните порядок выполнения.

В консоли выведется в следующем порядке:

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

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

В консоли выведется в следующем порядке:

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

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

В консоли выведется в следующем порядке:

a
c
b

Объяснение:

  • a() — синхронная функция, сразу выводит 'a'.
  • b() — вызывает setTimeout с задержкой 0, что ставит коллбек в очередь макротасков, он выполнится после всех микротасков и текущего стека.
  • c() — создаёт промис, который сразу резолвится, и его .then ставит коллбек в очередь микротасков.

Событийный цикл JavaScript сначала выполняет все синхронные операции, затем микротаски (промисы), и только потом макротаски (setTimeout). Поэтому сначала 'a', потом 'c', потом 'b'.

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

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

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

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