Встречается на собеседованиях • сегодня

Почему Promise выполняется раньше setTimeout

Promise выполняется в текущем цикле событий (microtask queue), а setTimeout попадает в очередь макрозадач (task queue). Event Loop сначала обрабатывает все микрозадачи (включая Promise), а только потом переходит к макрозадачам.

js
console.log('Start');

setTimeout(() => console.log('Timeout'), 0);

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

console.log('End');

// Output:
// Start
// End
// Promise
// Timeout

Даже при нулевой задержке setTimeout, Promise выполнится раньше, так как микрозадачи имеют приоритет в цикле событий.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы