UNPKG

@digital-blueprint/lunchlottery-app

Version:

[GitHub Repository](https://github.com/digital-blueprint/lunchlottery-app) | [npmjs package](https://www.npmjs.com/package/@digital-blueprint/lunchlottery-app) | [Unpkg CDN](https://unpkg.com/browse/@digital-blueprint/lunchlottery-app/)

40 lines (34 loc) 936 B
/** * Takes multiple AbortSignal instances and returns a new AbortController which * gets aborted if any of the AbortSignals do. * * @param {...AbortSignal} signals * @returns {AbortController} */ export function createLinkedAbortController(...signals) { const controller = new AbortController(); for (const signal of signals) { if (signal.aborted) { controller.abort(); break; } else { signal.addEventListener('abort', () => { controller.abort(); }); } } return controller; } /** * Returns an AbortSignal which aborts after the specified time. * * @param {number} delay Delay in milliseconds * @returns {AbortSignal} */ export function createTimeoutAbortSignal(delay) { const controller = new AbortController(); setTimeout(() => { controller.abort(); }, delay); return controller.signal; }