README
any-signal
Combines an array of AbortSignals into a single signal that is aborted when any signal is.
Install
npm install any-signal
Usage
const anySignal = require('any-signal')
const userController = new AbortController()
const timeoutController = new AbortController()
const combinedSignal = anySignal([userController.signal, timeoutController.signal])
combinedSignal.addEventListener('abort', () => console.log('Abort!'))
// Abort after 1 second
const timeoutId = setTimeout(() => timeoutController.abort(), 1000)
// The user or the timeout can now abort the action
await performSomeAction({ signal: combinedSignal })
clearTimeout(timeoutId)
API
anySignal(signals)
Parameters
Name | Type | Description |
---|---|---|
signals | Array<AbortSignal > |
The Signals that will be observed and mapped to the returned Signal |
Returns
Type | Description |
---|---|
AbortSignal |
A Signal that will be aborted as soon as any one of its parent signals are aborted. |
The returned AbortSignal
will only be aborted once, and as soon as one of its parent signals is aborted.
Acknowledgements
The anySignal function is taken from a comment by jakearchibald
LICENSE
MIT © Jacob Heun