> Что такое AbortController и метод abort в JavaScript (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: циан

Стек: JavaScript

> Пример ответа

AbortController - это встроенный объект в JavaScript, позволяющий отменять асинхронные операции, такие как fetch-запросы или обработка событий. Он состоит из двух частей: самого контроллера и его свойства signal, которое передаётся в асинхронную функцию. Метод abort() вызывается на контроллере, чтобы инициировать отмену. При этом signal генерирует событие abort, а связанная операция (например, fetch) отклоняет промис с ошибкой AbortError.

Пример использования:

JAVASCRIPT
const controller = new AbortController();
const signal = controller.signal;
fetch('https://api.example.com/data', { signal })
.then(response => response.json())
.catch(err => {
if (err.name === 'AbortError') {
console.log('Запрос отменён');
} else {
console.error('Ошибка', err);
}
});
// Отмена запроса через 2 секунды
setTimeout(() => controller.abort(), 2000);

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

  • AbortController позволяет управлять отменой извне, не изменяя логику самой асинхронной функции.

  • Метод abort() можно вызвать только один раз - повторные вызовы игнорируются.

  • Ошибка AbortError обрабатывается в catch, что даёт возможность корректно реагировать на отмену.

  • Кроме fetch, AbortSignal можно использовать с любыми асинхронными операциями, поддерживающими сигналы (например, в кастомных промисах через addEventListener).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью