Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

AbortSignal : méthode throwIfAborted()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨avril 2022⁩.

Note : Cette fonctionnalité est disponible via les Web Workers.

La méthode throwIfAborted() de l'interface AbortSignal lève la raison d'annulation reason du signal si celui-ci a été annulé ; sinon, elle ne fait rien.

Une API qui doit prendre en charge l'annulation peut accepter un objet AbortSignal et utiliser throwIfAborted() pour tester et lever une exception lorsque l'évènement abort est déclenché.

Cette méthode peut aussi être utilisée pour annuler des opérations à des points précis du code, plutôt que de passer le signal à des fonctions qui l'acceptent.

Syntaxe

js
throwIfAborted()

Paramètres

Aucun.

Valeur de retour

Aucune (undefined).

Exemples

Les exemples ci-dessous proviennent de la spécification.

Annuler une opération de scrutation

Cet exemple montre comment utiliser throwIfAborted() pour annuler une opération de scrutation.

Considérez une fonction asynchrone waitForCondition() qui est appelée avec une autre fonction asynchrone func, une valeur cible targetValue et un AbortSignal. La méthode compare le résultat de func avec targetValue dans une boucle, et retourne quand ils correspondent.

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

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

À chaque itération de la boucle, on utilise throwIfAborted() pour lever la raison (reason) du signal si l'opération a été annulée (et sinon ne rien faire). Si le signal est annulé, cela provoquera le rejet de la promesse waitForCondition().

Spécifications

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

Compatibilité des navigateurs

Voir aussi