Request: signal プロパティ
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2019年3月以降、すべてのブラウザーで利用可能です。
メモ: この機能はウェブワーカー内で利用可能です。
signal は Request インターフェイスの読み取り専用プロパティで、このリクエストに関連付けられた AbortSignal を返します。
値
AbortSignal オブジェクトです。
例
js
// 新しい中止コントローラーを作成
const controller = new AbortController();
// このコントローラーの AbortSignal オブジェクトを使用してリクエストを作成
const req = new Request("/", { signal: controller.signal });
// 中止された場合にメッセージをログ出力するイベントハンドラーを追加
req.signal.addEventListener("abort", () => {
console.log("abort");
});
// 中止された場合は、AbortSignalの理由をログ出力
fetch(req).catch(() => {
if (req.signal.aborted) {
if (req.signal.reason) {
console.log(`リクエストは ${req.signal.reason} が原因で中止されました。`);
} else {
console.log("リクエストは中止されましたが、理由は示されませんでした。");
}
} else {
console.log("リクエストは中止されませんでしたが、異常終了しました。");
}
});
// 実際にリクエストを中止
controller.abort();
仕様書
| 仕様書 |
|---|
| Fetch> # ref-for-dom-request-signal②> |