Sobes.tech
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) добавляет колбэк в очередь макротасков, которая выполняется после микротасков.

Порядок выполнения:

  1. Синхронный код: вывод E.
  2. Микротаски: вывод C и D (в порядке добавления).
  3. Макротаски: вывод B.

Поэтому итоговый порядок: E, C, D, B.