Back to questions
Middle
1
What will be the output of the following code snippet? ```javascript setTimeout(() => { console.log('B') }, 0) Promise.resolve().then(() => { console.log('C') }) Promise.resolve().then(() => { console.log('D') }) console.log('E') ```
Companies where asked
Сбермаркетинг
Answer from AI
sobes.tech AI
Вывод будет:
E
C
D
B
Объяснение:
console.log('E')выполняется синхронно сразу.Promise.resolve().then(...)добавляет колбэки в очередь микротасков, которые выполняются после текущего стека.setTimeout(..., 0)добавляет колбэк в очередь макротасков, которая выполняется после микротасков.
Порядок выполнения:
- Синхронный код: вывод
E. - Микротаски: вывод
CиD(в порядке добавления). - Макротаски: вывод
B.
Поэтому итоговый порядок: E, C, D, B.