any-signal
    Preparing search index...

    any-signal

    Similar to AbortSignal.any except the returned promise has a .clear method that removes all event listeners added to passed signals preventing memory leaks.

    At the time of writing at least, AbortSignal.any leaks memory in Node.js and Deno environments:

    import { anySignal } from 'any-signal'

    const userController = new AbortController()

    // Abort after 1 second
    const timeoutSignal = AbortSignal.timeout(1000)

    const combinedSignal = anySignal([userController.signal, timeoutSignal])
    combinedSignal.addEventListener('abort', () => console.log('Abort!'))

    try {
    // The user or the timeout can now abort the action
    await performSomeAction({ signal: combinedSignal })
    } finally {
    // Clear will clean up internal event handlers
    combinedSignal.clear()
    }

    Interfaces

    ClearableSignal

    Functions

    anySignal