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