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!'))
const timeoutId = setTimeout(() => timeoutController.abort(), 1000)
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