Saltar al contenido

DOM Abort

API de cancelación AbortController y AbortSignal.

En esta página

AbortController y AbortSignal son globales que usan Fetch, los temporizadores, los flujos y los listeners de eventos.

const controller = new AbortController();
controller.signal.aborted; // false

controller.abort();
controller.signal.aborted; // true
controller.signal.reason.name; // "AbortError"

AbortController

  • controller.signal devuelve la misma señal en cada lectura.
  • abort(reason?) es idempotente y despacha abort una sola vez.
  • Sin motivo, la señal almacena una DOMException AbortError.

AbortSignal

MiembroPropósito
abortedSi se produjo la cancelación.
reasonEl motivo indicado o un AbortError predeterminado.
throwIfAborted()Lanza el motivo si se ha abortado.
onabortManejador único del evento abort.
AbortSignal.abort(reason?)Crea una señal ya abortada.
AbortSignal.any(signals)Se aborta cuando se aborta cualquiera de las entradas.
AbortSignal.timeout(ms)Se aborta más tarde con TimeoutError.

AbortSignal no se puede construir directamente.

Listeners de eventos

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); // 1

Una señal ya abortada impide el registro. Un valor que no sea AbortSignal en la opción signal se ignora.

Reference

Status: Full · Not measured · since 1.1.0

Exports

ExportKindStatusNotes
AbortControllerclassFullsignal, abort()
AbortSignalclassFullAbortSignal.abort(), AbortSignal.timeout(), AbortSignal.any(), aborted, reason, throwIfAborted(), onabort

¿Te resultó útil esta página?