AbortController.abort()

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод abort() интерфейса AbortController прерывает DOM запрос (например Fetch запрос) до его завершения. Это позволяет прервать fetch запросы, использование любого ответа Body и потоков.

Синтаксис

controller.abort();

Параметры

Отсутствуют.

Возвращаемое значение

Не возвращает.

Примеры

 

В следующем фрагменте мы будем загружать видео используя Fetch API.

Сначала мы создаём контроллер с помощью контруктора AbortController(), а затем получаем ссылку на связанный объект AbortSignal используя свойство AbortController.signal.

Когда fetch запрос инициируется, мы передаём AbortSignal в качестве опции внутрь объекта параметров запроса (см. {signal} ниже). Это связывает сигнал и контроллер с fetch запросом и позволяет нам прервать его, вызвав 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 (увидеть работу в живую).

Спецификации

Спецификация Статус Комментарий
DOM
Определение 'abort()' в этой спецификации.
Живой стандарт Initial definition

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
abort
Экспериментальная
Chrome Полная поддержка 66Edge Полная поддержка 16Firefox Полная поддержка 57IE Нет поддержки НетOpera Полная поддержка 53Safari Полная поддержка 11.1WebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Полная поддержка 57Opera Android Полная поддержка 47Safari iOS Полная поддержка 11.1Samsung Internet Android Нет поддержки Нет

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: VerZsuT
Обновлялась последний раз: VerZsuT,