0 day streak
javascript / expert
Snippet

Orchestrating Cancellation with AbortSignal.any

AbortSignal.any allows developers to combine multiple cancellation triggers (like a manual cancel and a timeout) into a single signal. This simplifies complex async orchestration where an operation must stop if any condition is met.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const userCancel = new AbortController();
const timeout = AbortSignal.timeout(5000);
// Combine multiple signals into one
const combinedSignal = AbortSignal.any([
userCancel.signal,
timeout
]);
try {
const response = await fetch(url, { signal: combinedSignal });
} catch (err) {
if (err.name === 'AbortError') console.log('Request cancelled or timed out');
}
nodejs
Breakdown
1
AbortSignal.any([...])
Creates a new signal that aborts when any of the provided signals abort.
2
AbortSignal.timeout(5000)
A built-in utility that automatically aborts after a specified duration.