javascript / expert
Snippet
Orchestrating Timeouts with AbortSignal.any()
AbortSignal.any allows combining multiple abort signals into one. This is essential in Node.js for complex async orchestration, such as canceling a request if either a specific timeout expires, the user cancels the action, or a parent process shuts down, providing a clean way to manage concurrent cancellation logic.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
const userAbort = new AbortController();const timeoutAbort = AbortSignal.timeout(5000);const combinedSignal = AbortSignal.any([userAbort.signal,timeoutAbort]);try {const response = await fetch(url, { signal: combinedSignal });} catch (err) {if (err.name === 'AbortError') console.log('Operation cancelled');}
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 signal that triggers after a specified delay.