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: Dieses Feature ist verfügbar in Web Workers.
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
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.
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 Standard # ref-for-dom-abortsignal-throwifaborted① |
Browser-Kompatibilität
BCD tables only load in the browser