Canceling an API Call
In JavaScript, you can cancel API calls made with fetch
and axios
using AbortController
for fetch and CancelToken
(or AbortController
in modern versions) for axios
.
Canceling an API call using fetch and AbortController
The AbortController
allows you to cancel one or more fetch
requests. Here's how you can implement it:
const controller = new AbortController();
const signal = controller.signal;
fetch('https://api.example.com/data', { signal })
.then(response => response.json())
.then(data => console.log(data))
.catch(err => {
if (err.name === 'AbortError') {
console.log('Fetch aborted');
} else {
console.error('Fetch error:', err);
}
});
// Cancel the fetch request
controller.abort();
Canceling an API call using axios and CancelToken
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('https://api.example.com/data', {
cancelToken: source.token
})
.then(response => console.log(response.data))
.catch(err => {
if (axios.isCancel(err)) {
console.log('Request canceled', err.message);
} else {
console.error('Axios error:', err);
}
});
// Cancel the request
source.cancel('Operation canceled by the user.');
Canceling an API call using axios and AbortController
In modern Axios versions, you can use AbortController
just like with fetch
:
const controller = new AbortController();
axios.get('https://api.example.com/data', { signal: controller.signal })
.then(response => console.log(response.data))
.catch(err => {
if (err.name === 'AbortError') {
console.log('Axios request aborted');
} else {
console.error('Axios error:', err);
}
});
// Cancel the request
controller.abort();