JavaScript · Senior · Question 51 of 75
How do you abort a fetch after 5 seconds or when the user navigates away, whichever comes first?
const signal = AbortSignal.any([AbortSignal.timeout(5000), controller.signal]);
await fetch(url, { signal });- ✓Correct answer: Combine
AbortSignal.timeout()and a controller's signal withAbortSignal.any() - 2Wrap
fetchinsetTimeout - 3Pass
{ timeout: 5000 }tofetch
Explanation
fetch has no timeout option. AbortSignal.timeout rejects with a TimeoutError, while a manual abort gives an AbortError, so you can tell them apart.