Spec-Zone.ru › Web APIs

AbortController: метод abort()

Базовая Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2019 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод abort() интерфейса AbortController прерывает асинхронную операцию до её завершения. Он может прервать запросы fetch, чтение тела ответа или потоков.

Синтаксис

abort()
abort(reason)

Параметры

reason Необязательно

Причина прерывания операции, которая может быть любым значением JavaScript. Если не указано, причина устанавливается в «AbortError» DOMException.

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

Ничего (undefined).

Примеры

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

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

Когда инициализируется запрос fetch, мы передаём AbortSignal в качестве опции в объекте опций запроса (объект {signal} ниже). Это связывает сигнал и контроллер с запросом fetch и позволяет нам прервать его, вызвав AbortController.abort(), как показано ниже во втором обработчике события.

const controller = new AbortController();
const signal = controller.signal;

const url = "video.mp4";
const downloadBtn = document.querySelector(".download");
const abortBtn = document.querySelector(".abort");

downloadBtn.addEventListener("click", fetchVideo);

abortBtn.addEventListener("click", () => {
  controller.abort();
  console.log("Download aborted");
});

function fetchVideo() {
  fetch(url, { signal })
    .then((response) => {
      console.log("Download complete", response);
    })
    .catch((err) => {
      console.error(`Download error: ${err.message}`);
    });
}

Примечание: Когда вызывается abort(), обещание fetch() отклоняется с ошибкой Error типа DOMException, с именем AbortError.

Вы можете найти полный рабочий пример на GitHub; вы также можете посмотреть его в работе.

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

Спецификация
DOM
# ref-for-dom-abortcontroller-abortcontroller①

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
abort 66 16 57 53 12.1
11.1Несмотря на то, что window.AbortController определён, он не действительно прерывает fetch запросы. См. баг 174980.
66 57 47 12.2
11.3Несмотря на то, что window.AbortController определён, он не действительно прерывает fetch запросы. См. баг 174980.
9.0 66
reason_parameter 98 98 97 84 15.4 98 97 68 15.4 18.0 98

См. также

  • Fetch API

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API