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

Как работает Recancellation

Recancellation — это механизм отмены предыдущего запроса при новом вызове, чтобы избежать race conditions. Чаще всего используется с fetch или axios.

Пример с AbortController:

javascript
let controller;

async function fetchData(query) {
  if (controller) {
    controller.abort(); // Отменяем предыдущий запрос
  }
  
  controller = new AbortController();
  
  try {
    const response = await fetch(`/api?q=${query}`, {
      signal: controller.signal
    });
    // Обработка данных
  } catch (err) {
    if (err.name === 'AbortError') {
      console.log('Запрос был отменён');
    } else {
      console.error('Ошибка:', err);
    }
  }
}

Ключевые моменты:

  • Создаём новый AbortController для каждого запроса
  • Передаём его signal в параметры запроса
  • При новом вызове сначала отменяем предыдущий запрос
  • Обрабатываем ошибку отмены отдельно от других ошибок
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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