We're looking for a person or people to help audit MDN to find places we could speed up. Is this you or someone you know? Check out the RFP: https://mzl.la/2IHcMiE

Nos bénévoles n'ont pas encore traduit cet article en Français. Inscrivez-vous et aidez-nous à réaliser cette tâche !
Vous pouvez également lire cet article en English (US).

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The AbortController interface represents a controller object that allows you to abort one or more DOM requests as and when desired.

You can create a new AbortController object using the AbortController.AbortController() constructor. Communicating with a DOM request is done using an AbortSignal object.


Creates a new AbortController object instance.


AbortController.signal Read only
Returns a AbortSignal object instance, which can be used to communicate with/abort a DOM request.


Aborts a DOM request before it has completed. This is able to abort fetch requests, consumption of any response Body, and streams.


In the following snippet, we aim to download a video using the Fetch API.

We first create a controller using the AbortController() constructor, then grab a reference to its associated AbortSignal object using the AbortController.signal property.

When the fetch request is initiated, we pass in the AbortSignal as an option inside the request's options object (see {signal}, below). This associates the signal and controller with the fetch request and allows us to abort it by calling AbortController.abort(), as seen below in the second event listener.

var controller = new AbortController();
var signal = controller.signal;

var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');

downloadBtn.addEventListener('click', fetchVideo);

abortBtn.addEventListener('click', function() {
  console.log('Download aborted');

function fetchVideo() {
  fetch(url, {signal}).then(function(response) {
  }).catch(function(e) {
    reports.textContent = 'Download error: ' + e.message;

Note: When abort() is called, the fetch() promise rejects with an AbortError.

You can find a full working example on GitHub — see abort-api (see it running live also).


Specification Status Comment
The definition of 'AbortController' in that specification.
Living Standard Initial definition

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support661657 No43 No
AbortController() constructor661657 No43 No
signal661657 No43 No
abort661657 No43 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support6666165743 No ?
AbortController() constructor6666165743 No ?
signal6666165743 No ?
abort6666165743 No ?

See also

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : fscholz, chrisdavidmills
 Dernière mise à jour par : fscholz,