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 Standard
# ref-for-dom-abortsignal-reason①

ブラウザーの互換性

BCD tables only load in the browser

関連情報