AbortController
JS · Async Programmingsyntax
const controller = new AbortController();
fetch(url, { signal: controller.signal });
controller.abort();example
async function searchWithCancel(query) {
const controller = new AbortController();
// Auto-cancel after 5 seconds
const timeoutId = setTimeout(() => controller.abort(), 5000);
try {
const res = await fetch(`/api/search?q=${query}`, {
signal: controller.signal,
});
clearTimeout(timeoutId);
return await res.json();
} catch (err) {
if (err.name === "AbortError") {
console.log("Request was cancelled");
} else {
throw err;
}
}
}Note Essential for cancelling stale requests (e.g., in search-as-you-type). The AbortSignal can be shared across multiple fetch calls to cancel them all at once.