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'.