0.1.1 • Published 1 year ago

abort-controller-multiplexer v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

AbortController Multiplexer

Combine multiple AbortControllers or AbortSignals into a single instance

abort-controller-multiplexer Tests status GitHub

AbortControllers 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
    • Cancel requests
  • 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(); // Throws

Note that these combination methods do not modify the underlying AbortController and AbortSignal instances.