- From: Alon Gamliel <notifications@github.com>
- Date: Thu, 09 Feb 2023 19:45:49 -0800
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 10 February 2023 03:46:02 UTC
Great comment from @jakearchibald.
Some proposed changes -
1. Propagate reason from the aborted signal to the wrapper signal;
2. Don't attempt unsubscribe if subscription hasn't been done yet;
3. Typescript added.
```typescript
function anySignal(signals: AbortSignal[]) {
const controller = new AbortController();
const unsubscribe: (() => void)[] = [];
function onAbort(signal: AbortSignal) {
controller.abort(signal.reason);
unsubscribe.forEach((f) => f());
}
for (const signal of signals) {
if (signal.aborted) {
onAbort(signal);
break;
}
const handler = onAbort.bind(undefined, signal);
signal.addEventListener('abort', handler);
unsubscribe.push(() => signal.removeEventListener('abort', handler));
}
return controller.signal;
}
```
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/905#issuecomment-1425133682
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/fetch/issues/905/1425133682@github.com>
Received on Friday, 10 February 2023 03:46:02 UTC