AbortController Multiplexer
Combine multiple AbortControllers or AbortSignals into a single instance
AbortController
s are very useful mechanisms in JavaScript that allow one to insert abort signals into application components with ease. You can pass an AbortController
's signal
(AbortSignal
) into methods you call, abort it later, and use it to:
- Cancel asynchronous operations
- Throw if the signal was previously aborted
- Etc.
Sometimes, in sufficiently complicated applications, you may run across situations where you need multiple abort signals. This library can be used to group them together into one large signal/controller, that you can abort from a single method or watch using a single signal.
Installation
Install using npm:
npm install abort-controller-multiplexer --save
Note that this library uses ESM. You must consume it in an ESM-friendly environment.
Usage
Combine several abort controllers:
import { combineControllers } from "abort-controller-multiplexer";
const ac1 = new AbortController();
const ac2 = new AbortController();
const controller = combineControllers(ac1, ac2);
controller.abort();
Note that combineControllers
calls combineSignals
under the hood.
Combine several signals:
import { combineSignals } from "abort-controller-multiplexer";
const ac1 = new AbortController();
const ac2 = new AbortController();
const signal = combineSignals(ac1.signal, ac2.signal);
ac1.abort();
signal.throwIfAborted();
Note that these combination methods do not modify the underlying AbortController
and AbortSignal
instances.