Aborting Fetch
Pass an AbortSignal to fetch to cancel in-flight requests — essential for search inputs and component unmounting.
Pass an AbortSignal to fetch to cancel in-flight requests — essential for search inputs and component unmounting.
let controller;
async function search(query) {
controller?.abort(); // cancel previous
controller = new AbortController();
try {
const res = await fetch(`/api/search?q=${encodeURIComponent(query)}`, { signal: controller.signal });
return res.json();
} catch (e) {
if (e.name !== "AbortError") throw e;
}
}
Abort previous requests on each keystroke to prevent stale results from overwriting newer ones.
More in JavaScript