const controller = new AbortController();
const signal = controller.signal;
 
fetch('https://api.example.com/data', { signal })
  .then(response => {
    // handle response
  })
  .catch(error => {
    if (error.name === 'AbortError') {
      // Request was aborted
      console.log('Request aborted');
    } else {
      // Handle other errors
      console.error('Error:', error);
    }
  });
 
// To cancel the request:
controller.abort();
  • Cancel the fetch() request if it don’t happen in sometime,
const controller = new AbortController();
const signal = controller.signal;
 
const timeout = setTimeout(() => {
  controller.abort();
  console.log('Request timed out');
}, 5000); // 5000 milliseconds = 5 seconds
 
fetch('https://api.example.com/data', { signal })
  .then(response => {
    // handle response
    clearTimeout(timeout); // Cancel the timeout if the request succeeds
  })
  .catch(error => {
    if (error.name === 'AbortError') {
      // Request was aborted due to timeout
      console.log('Request aborted due to timeout');
    } else {
      // Handle other errors
      console.error('Error:', error);
    }
  });