Spec-Zone.ru › Web APIs

AbortSignal: метод throwIfAborted()

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

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

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

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

Метод throwIfAborted() выбрасывает исключение сигнала прерывания reason, если сигнал был прерван; в противном случае он ничего не делает.

API, которому необходимо поддерживать прерывание, может принять объект AbortSignal и использовать throwIfAborted() для проверки и выброса исключения, когда сигнал события abort сработал.

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

Синтаксис

throwIfAborted()

Параметры

Нет.

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

Нет (undefined).

Примеры

Примеры ниже взяты из спецификации.

Прерывание цикла опроса

Этот пример демонстрирует, как использовать throwIfAborted() для прерывания цикла опроса.

Рассмотрим асинхронную функцию waitForCondition(), которая вызывается с другой асинхронной функцией func, целевым значением targetValue и объектом AbortSignal. Метод сравнивает результат func с targetValue в цикле, возвращая значение, когда они совпадают.

async function waitForCondition(func, targetValue, { signal } = {}) {
  while (true) {
    signal?.throwIfAborted();

    const result = await func();
    if (result === targetValue) {
      return;
    }
  }
}

На каждой итерации цикла мы используем throwIfAborted() для выброса сигнала прерывания reason, если операция была прервана (и в противном случае ничего не делает). Если сигнал прерван, это приведёт к отклонению промиса waitForCondition().

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
throwIfAborted 100 100 97 86 15.4 100 97 69 15.4 19.0 100

См. также

  • API Fetch

© 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/AbortSignal/throwIfAborted

Spec-Zone.ru

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