--- title: AbortController.abort() slug: Web/API/AbortController/abort translation_of: Web/API/AbortController/abort ---
Метод abort()
интерфейса {{domxref("AbortController")}} прерывает DOM запрос (например Fetch запрос) до его завершения. Это позволяет прервать fetch запросы, использование любого ответа {{domxref("Body")}} и потоков.
controller.abort();
Отсутствуют.
Не возвращает.
В следующем фрагменте мы будем загружать видео используя Fetch API.
Сначала мы создаём контроллер с помощью конструктора {{domxref("AbortController.AbortController","AbortController()")}}, а затем получаем ссылку на связанный объект {{domxref("AbortSignal")}} используя свойство {{domxref("AbortController.signal")}}.
Когда fetch запрос инициируется, мы передаём AbortSignal
в качестве опции внутрь объекта параметров запроса (см. {signal}
ниже). Это связывает сигнал и контроллер с fetch запросом и позволяет нам прервать его, вызвав {{domxref("AbortController.abort()")}}, как показано ниже во втором прослушивателе событий.
var controller = new AbortController(); var signal = controller.signal; var downloadBtn = document.querySelector('.download'); var abortBtn = document.querySelector('.abort'); downloadBtn.addEventListener('click', fetchVideo); abortBtn.addEventListener('click', function() { controller.abort(); console.log('Загрузка прервана'); }); function fetchVideo() { ... fetch(url, {signal}).then(function(response) { ... }).catch(function(e) { reports.textContent = 'Ошибка загрузки: ' + e.message; }) }
Примечание: Когда abort()
вызывается, fetch()
обещание отклоняется с AbortError
.
Вы можете найти полный работающий пример на GitHub — см. abort-api (увидеть работу в живую).
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('DOM WHATWG', '#dom-abortcontroller-abort', 'abort()')}} | {{Spec2('DOM WHATWG')}} | Initial definition |
{{Compat("api.AbortController.abort")}}