Sobes.tech
Back to questions
Middle+
8

Live coding: определите очерёдность вывода в консоль для кода с Promise, setTimeout и синхронными вызовами.

Companies where asked
Ifellow

Answer from AI

sobes.tech AI

В JavaScript порядок вывода в консоль при использовании синхронных вызовов, Promise и setTimeout определяется очередями событий и микротасками.

Пример:

console.log('1');

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

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

console.log('4');

Пояснение к порядку вывода:

  1. Сначала выполняются синхронные вызовы: console.log('1') и console.log('4').
  2. Затем выполняются микротаски (Promise): console.log('3').
  3. После этого выполняются макротаски (setTimeout): console.log('2').

Итоговый вывод в консоль будет:

1
4
3
2

Таким образом, микротаски (Promise) всегда выполняются после текущего стека вызовов, но до макротасков (setTimeout).