UNPKG

abort-utils

Version:

Utility functions to use and combine `AbortSignal` and `AbortController` with Promises

15 lines (14 loc) 489 B
export function mergeSignals(...signals) { const controller = new AbortController(); for (const abort of signals) { const signal = abort instanceof AbortController ? abort.signal : abort; if (signal?.aborted) { controller.abort(signal.reason); return controller.signal; } signal?.addEventListener('abort', () => { controller.abort(signal.reason); }, { once: true }); } return controller.signal; }