Skip to content

Instantly share code, notes, and snippets.

@mary-ext
Created February 6, 2025 10:08
Show Gist options
  • Save mary-ext/39a9e8f9173eca080138ce01ca59a978 to your computer and use it in GitHub Desktop.
Save mary-ext/39a9e8f9173eca080138ce01ca59a978 to your computer and use it in GitHub Desktop.
AbortSignal.any ponyfill
export const followAbortSignal = (signals: (AbortSignal | undefined)[]) => {
const controller = new AbortController();
const own = controller.signal;
for (let idx = 0, len = signals.length; idx < len; idx++) {
const signal = signals[idx];
if (!signal) {
continue;
}
if (signal.aborted) {
controller.abort(signal.reason);
break;
}
signal.addEventListener('abort', () => controller.abort(signal.reason), { signal: own });
}
return own;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment