AbortSignal: Methode throwIfAborted()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2019.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Methode throwIfAborted() wirft den Abbruchgrund des Signals reason, wenn das Signal abgebrochen wurde; andernfalls wird nichts unternommen.

Eine API, die das Abbrechen unterstützen muss, kann ein AbortSignal-Objekt akzeptieren und throwIfAborted() verwenden, um zu testen und zu werfen, wenn das abort-Ereignis signalisiert wird.

Diese Methode kann auch verwendet werden, um Operationen an bestimmten Stellen im Code abzubrechen, anstatt sie an Funktionen zu übergeben, die ein Signal erwarten.

Syntax

js
throwIfAborted()

Parameter

Keine.

Rückgabewert

Keiner (undefined).

Beispiele

Die untenstehenden Beispiele stammen aus der Spezifikation.

Abbruch einer Abfrageoperation

Dieses Beispiel zeigt, wie Sie throwIfAborted() verwenden können, um eine Abfrageoperation abzubrechen.

Betrachten Sie eine asynchrone waitForCondition()-Funktion, die mit einer anderen asynchronen Funktion func, einem Zielwert targetValue und einem AbortSignal aufgerufen wird. Die Methode vergleicht das Ergebnis von func mit targetValue in einer Schleife und gibt zurück, wenn sie übereinstimmen.

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

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

Bei jeder Iteration der Schleife verwenden wir throwIfAborted(), um den Abbruchgrund des Signals zu werfen, wenn die Operation abgebrochen wurde (und andernfalls nichts zu tun). Wenn das Signal abgebrochen wird, führt dies dazu, dass das waitForCondition()-Versprechen abgelehnt wird.

Spezifikationen

Specification
DOM
# ref-for-dom-abortsignal-throwifaborted①

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
throwIfAborted

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

Siehe auch