JSPM

composite-abort-controller

1.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 117
  • Score
    100M100P100Q87117F
  • License MIT

abort controller and abort signal classes that compose multiple abort signals

Package Exports

  • composite-abort-controller
  • composite-abort-controller/dist/cjs/index.js
  • composite-abort-controller/dist/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (composite-abort-controller) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

CompositeAbortController

abort controller and abort signal classes that compose multiple abort signals

Installation

npm i --save composite-abort-controller

Usage

Supports both ESM and CommonJS

// esm
import CompositeAbortController from 'composite-abort-controller'
// commonjs
const CompositeAbortController = require('composite-abort-controller').default

Example 1: Compose AbortSignals into one via CompositeAbortController

import CompositeAbortController from 'composite-abort-controller'

const sourceControllers = [
  new AbortController(),
  new AbortController(),
  new AbortController(),
]
const sourceSignals = sourceControllers.map((c) => c.signal)

const controller = new CompositeAbortController(sourceSignals)
const signal = controller.signal()
console.log(signal.aborted) // false
signal.addEventListener('abort', handleAbort)

sourceControllers.forEach((controller) => controller.abort())
console.log(signal.aborted) // true
function handleAbort() {
  console.log('all signals aborted')
}

Example 2: Compose AbortSignals into one via CompositeAbortSignal

import { CompositeAbortSignal } from 'composite-abort-controller'

const sourceControllers = [
  new AbortController(),
  new AbortController(),
  new AbortController(),
]
const sourceSignals = sourceControllers.map((c) => c.signal)

const signal = new CompositeAbortSignal(sourceSignals)
console.log(signal.aborted) // false
signal.addEventListener('abort', handleAbort)

sourceControllers.forEach((controller) => controller.abort())
console.log(signal.aborted) // true
function handleAbort() {
  console.log('all signals aborted')
}

Example 3: Add AbortSignals to a existing CompositeAbortController

const compositeAbortController = new CompositeAbortController(sourceSignals)
const newController = new AbortController()

compositeAbortController.addSignal(newController.signal)

Example 4: Add AbortSignals to a existing CompositeAbortSignal

const compositeAbortController = new CompositeAbortController(sourceSignals)
const compositeAbortSignal = compositeAbortController.signal
const newController = new AbortController()

compositeAbortSignal.add(newController.signal)

License

MIT