Sobes.tech
Назад к вопросам
Middle
3

В какой последовательности выведутся числа в коде с Promise, setTimeout и синхронным кодом (Event Loop)?

Компании, где спрашивали
МПФИТ

Ответ от нейросети

sobes.tech AI

В JavaScript порядок выполнения кода с Promise, setTimeout и синхронного кода определяется Event Loop и очередями микротасков (microtasks) и макротасков (macrotasks).

Рассмотрим пример:

console.log('1');

setTimeout(() => {
  console.log('2');
}, 0);

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

Пояснение:

  • Сначала выполняется весь синхронный код, поэтому выводятся 1 и 4.
  • Затем выполняются микротаски (Promise), выводится 3.
  • После этого выполняются макротаски (setTimeout), выводится 2.

Итоговый порядок вывода: 1, 4, 3, 2.

Таким образом, синхронный код выполняется первым, затем микротаски (Promise), затем макротаски (setTimeout). Это ключевой момент понимания Event Loop в JavaScript.