Назад к вопросам
Middle+
9
Live coding: определите очерёдность вывода в консоль для кода с Promise, setTimeout и синхронными вызовами.
Компании, где спрашивали
Ifellow
Ответ от нейросети
sobes.tech AI
В JavaScript порядок вывода в консоль при использовании синхронных вызовов, Promise и setTimeout определяется очередями событий и микротасками.
Пример:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Пояснение к порядку вывода:
- Сначала выполняются синхронные вызовы:
console.log('1')иconsole.log('4'). - Затем выполняются микротаски (Promise):
console.log('3'). - После этого выполняются макротаски (setTimeout):
console.log('2').
Итоговый вывод в консоль будет:
1
4
3
2
Таким образом, микротаски (Promise) всегда выполняются после текущего стека вызовов, но до макротасков (setTimeout).