--- title: AbortSignal slug: Web/API/AbortSignal translation_of: Web/API/AbortSignal ---
AbortSignal интерфейс представляет собой объект сигнала, который позволяет вам общаться с DOM запросом (например, Fetch) и прервать его при необходимости с помощью объекта {{domxref("AbortController")}}.
AbortSignal также наследует свойства от своего родительского интерфейса, {{domxref("EventTarget")}}.
true) или нет (false).AbortSignal наследует методы от родительского интерфейса, {{domxref("EventTarget")}}.
В следующем фрагменте мы будем загружать видео используя 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.
Текущая версия Firefox отклоняет промис с DOMException
Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую).
{{Compat}}