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

Что происходит в браузере когда код доходит до await

Когда код доходит до await, выполнение текущей асинхронной функции приостанавливается, и управление возвращается в вызывающий контекст (например, в Event Loop). Ожидаемое промисное выражение после await начинает выполняться. Пока промис не разрешится (fulfilled/rejected), функция остаётся в состоянии "паузы".

Как только промис завершается, выполнение функции возобновляется с того места, где оно было остановлено, и await возвращает результат промиса. Если промис отклонён (rejected), генерируется исключение, которое можно перехватить через try/catch.

Пример:

javascript
async function fetchData() {
  console.log('Start');
  const response = await fetch('https://api.example.com/data'); // Пауза до разрешения промиса
  console.log('Resumed after fetch');
  const data = await response.json();
  return data;
}
  1. fetchData() начинает выполнение.
  2. При встрече await функция "засыпает", но браузер продолжает работать (рендеринг, обработка событий и т.д.).
  3. После завершения fetch функция "просыпается" и продолжает работу.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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