AbortController

Позволяет отменять асинхронные операции, например запросы fetch, через сигнал.

Сигнатураnew AbortController()

Создаёт объект с полем signal и методом abort(). Сигнал передаётся в fetch() (и другие API); вызов abort() прерывает операцию, и её промис отклоняется ошибкой AbortError.

const controller = new AbortController();

fetch('https://api.example.com/data', { signal: controller.signal })
  .then((res) => res.json())
  .catch((err) => {
    console.log(err.name); // результат: 'AbortError'
  });

// отменяем запрос через 100мс
setTimeout(() => controller.abort(), 100);

Часто применяют для отмены устаревших запросов (например, при быстром вводе в поиске).

← Все записи: Промисы и async в JavaScript
Поддержать проект