AbortSignal: reason プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2019.

メモ: この機能はウェブワーカー内で利用可能です。

reason は読み取り専用プロパティで、中止の理由を示す JavaScript の値を返します。

このプロパティは、シグナルが中止されていないときは undefined です。 シグナルが中止されたときに、AbortController.abort() または AbortSignal.abort() によって特定の値に設定することができます。 これらのメソッドで明示的に設定されていない場合、既定では "AbortError" DOMException になります。

中止の理由を示す JavaScript の値で、中止されない場合は undefined となります。

以下のスニペットでは、新しい AbortController オブジェクトを作成し、その AbortSignalsignal プロパティを使用して利用できます)を取得します。 その後、aborted プロパティを使用して、シグナルが中止されたかどうかを調べ、中止の状況と理由をコンソールにログ出力しています。

js
const controller = new AbortController();
const signal = controller.signal;

// …

if (signal.aborted) {
  if (signal.reason) {
    console.log(`Request aborted with reason: ${signal.reason}`);
  } else {
    console.log("Request aborted but no reason was given.");
  }
} else {
  console.log("Request not aborted");
}

仕様書

Specification
DOM
# ref-for-dom-abortsignal-reason①

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
reason

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

関連情報