Sobes.tech
Назад к вопросам
Middle
1

/** * Что выведется в консоли и почему */ const a = () => console.log('a'); const b = () => setTimeout(() => console.log('b'), 0); const c = () => Promise.resolve().then(() => console.log('c')); a(); b(); c();

Компании, где спрашивали
Веб-мост

Ответ от нейросети

sobes.tech AI

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

a
c
b

Объяснение:

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

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