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

Что в Promise выполняется асинхронно

В Promise асинхронно выполняется код внутри исполнительной функции (executor), переданной в конструктор new Promise(). Однако есть важный нюанс: только обработчики .then(), .catch() и .finally() всегда выполняются асинхронно, даже если Promise уже resolved.

Пример:

javascript
console.log('Start');
new Promise(resolve => {
  console.log('Promise executor'); // синхронно
  resolve('Done');
}).then(res => console.log(res)); // асинхронно
console.log('End');

Вывод:

text
Start
Promise executor
End
Done

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

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

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

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

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