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

Сталкивался ли с race condition при работе с запросами к API

Да, race condition может возникнуть, когда несколько асинхронных запросов выполняются параллельно, а их порядок завершения влияет на конечный результат. Например, если пользователь быстро меняет фильтры в интерфейсе, старые запросы могут вернуться позже новых, перезаписав актуальные данные.

javascript
let lastRequestId = 0;

async function fetchData(params) {
  const currentRequestId = ++lastRequestId;
  const response = await api.get('/data', { params });
  
  // Проверяем, что это последний запрос
  if (currentRequestId === lastRequestId) {
    updateUI(response.data);
  }
}

Способы борьбы:

  1. Отмена предыдущих запросов через AbortController
  2. Использование флагов (как в примере)
  3. Дебаунс/троттлинг ввода
  4. Очередь запросов

Наиболее надежный способ - отмена через AbortController, который поддерживается в axios и fetch API.

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

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

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

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