Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

AbortController

BaselineWidely available

Note: This feature is available inWeb Workers.

TheAbortController interface represents a controller object that allows you to abort one or more Web requests as and when desired.

You can create a newAbortController object using theAbortController() constructor. Communicating with an asynchronous operation is done using anAbortSignal object.

Constructor

AbortController()

Creates a newAbortController object instance.

Instance properties

AbortController.signalRead only

Returns anAbortSignal object instance, which can be used to communicate with, or to abort, an asynchronous operation.

Instance methods

AbortController.abort()

Aborts an asynchronous operation before it has completed. This is able to abortfetch requests, consumption of any response bodies, and streams.

Examples

Note:There are additional examples in theAbortSignal reference.

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

We first create a controller using theAbortController() constructor, then grab a reference to its associatedAbortSignal object using theAbortController.signal property.

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

Whenabort() is called, thefetch() promise rejects with aDOMException namedAbortError.

js
let controller;const url = "video.mp4";const downloadBtn = document.querySelector(".download");const abortBtn = document.querySelector(".abort");downloadBtn.addEventListener("click", fetchVideo);abortBtn.addEventListener("click", () => {  if (controller) {    controller.abort();    console.log("Download aborted");  }});async function fetchVideo() {  controller = new AbortController();  const signal = controller.signal;  try {    const response = await fetch(url, { signal });    console.log("Download complete", response);    // process response further  } catch (err) {    console.error(`Download error: ${err.message}`);  }}

If the request is aborted after thefetch() call has been fulfilled but before the response body has been read, then attempting to read the response body will reject with anAbortError exception.

js
async function get() {  const controller = new AbortController();  const request = new Request("https://example.org/get", {    signal: controller.signal,  });  const response = await fetch(request);  controller.abort();  // The next line will throw `AbortError`  const text = await response.text();  console.log(text);}

You can find afull working example on GitHub; you can also see itrunning live.

Specifications

Specification
DOM
# interface-abortcontroller

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp