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

Что раньше выйдет из Event Loop Promise или setTimeout

В Event Loop микротаски (Promise) имеют приоритет над макротасками (setTimeout). Даже если setTimeout с таймаутом 0 будет вызван раньше Promise, его колбэк попадёт в очередь макротасок и выполнится только после обработки всех микротасок.

Пример:

javascript
setTimeout(() => console.log('timeout'), 0);
Promise.resolve().then(() => console.log('promise'));

// Вывод:
// promise
// timeout

Порядок выполнения:

  1. Синхронный код выполняется сразу
  2. Микротаски (Promise) выполняются перед следующей макротаской
  3. Макротаски (setTimeout) выполняются после всех текущих микротасок
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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