В консоли выведется в следующем порядке:
Что будет выведено в консоль в примере с setTimeout, Promise, resolve и then? Объясните порядок выполнения.
В консоли выведется в следующем порядке:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В консоли выведется в следующем порядке:
a
c
b
Объяснение:
a()— синхронная функция, сразу выводит 'a'.b()— вызываетsetTimeoutс задержкой 0, что ставит коллбек в очередь макротасков, он выполнится после всех микротасков и текущего стека.c()— создаёт промис, который сразу резолвится, и его.thenставит коллбек в очередь микротасков.
Событийный цикл JavaScript сначала выполняет все синхронные операции, затем микротаски (промисы), и только потом макротаски (setTimeout). Поэтому сначала 'a', потом 'c', потом 'b'.