Как вложенность callbacks влияет на вывод JavaScript

Порядок: 1, 5, 2, 4, 3. Отступы помогают прочитать вложенность, но порядок определяется синхронным выполнением, задачами и микрозадачами.

Короткий ответ

Что ответить на собеседовании

Порядок: 1, 5, 2, 4, 3. Отступы помогают прочитать вложенность, но порядок определяется синхронным выполнением, задачами и микрозадачами.

Подробный разбор

Ответ с пояснениями

Условие

Расставьте отступы и определите вывод:

console.log(1); setTimeout(() => { console.log(2); Promise.resolve().then(() => { console.log(3); }); console.log(4); }, 0); console.log(5);

Ответ

Порядок: 1, 5, 2, 4, 3. Отступы помогают прочитать вложенность, но порядок определяется синхронным выполнением, задачами и микрозадачами.

Отформатированный код:

console.log(1);
setTimeout(() => {
  console.log(2);
  Promise.resolve().then(() => {
    console.log(3);
  });
  console.log(4);
}, 0);
console.log(5);

После синхронных 1 и 5 запускается callback таймера. В нём 2 и 4 синхронны; реакция Promise выполняется после завершения callback.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее