AbortController et AbortSignal sont des globales utilisées par Fetch, les
minuteries, les flux et les écouteurs d’événements.
const controller = new AbortController();
controller.signal.aborted; // false
controller.abort();
controller.signal.aborted; // true
controller.signal.reason.name; // "AbortError"AbortController
controller.signalrenvoie le même signal à chaque lecture.abort(reason?)est idempotent et distribueabortune seule fois.- Sans raison, le signal stocke une
DOMExceptionAbortError.
AbortSignal
| Membre | Rôle |
|---|---|
aborted | Indique si l’annulation a eu lieu. |
reason | La raison fournie ou une AbortError par défaut. |
throwIfAborted() | Lever la raison si le signal est interrompu. |
onabort | Gestionnaire unique de l’événement abort. |
AbortSignal. | Créer un signal déjà interrompu. |
AbortSignal. | S’interrompre dès que l’une des entrées s’interrompt. |
AbortSignal.timeout(ms) | S’interrompre plus tard avec une TimeoutError. |
AbortSignal ne peut pas être construit directement.
Écouteurs d’événements
const target = new EventTarget();
const controller = new AbortController();
let calls = 0;
const onMessage = () => {
calls += 1;
};
target.addEventListener("message", onMessage, {
signal: controller.signal,
});
target.dispatchEvent(new Event("message"));
controller.abort(); // removes the listener
target.dispatchEvent(new Event("message"));
console.log(calls); // 1Un signal déjà interrompu empêche l’enregistrement. Une valeur qui n’est pas un
AbortSignal dans l’option signal est ignorée.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
AbortController | class | Full | signal, abort() |
AbortSignal | class | Full | AbortSignal.abort(), AbortSignal.timeout(), AbortSignal.any(), aborted, reason, throwIfAborted(), onabort |