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
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 oneconst 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.