> Что такое AbortController и метод abort в JavaScript (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: циан
Стек: JavaScript
> Пример ответа
AbortController - это встроенный объект в JavaScript, позволяющий отменять асинхронные операции, такие как fetch-запросы или обработка событий. Он состоит из двух частей: самого контроллера и его свойства signal, которое передаётся в асинхронную функцию. Метод abort() вызывается на контроллере, чтобы инициировать отмену. При этом signal генерирует событие abort, а связанная операция (например, fetch) отклоняет промис с ошибкой AbortError.
Пример использования:
JAVASCRIPTconst 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).
> Похожие задачи по frontend
Что происходит при попытке присвоить свойство примитиву в JavaScript
Как работает Promise.all и как реализовать аналог с обработкой reject в JavaScript
Какие состояния бывают у промисов и какие методы у них есть в JavaScript
В чем отличие массивов от объектов в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью