Sobes.tech
Back to questions
Middle
2

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

Companies where asked
Веб-мост

Answer from AI

sobes.tech AI

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

a
c
b

Объяснение:

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

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