Request: signal プロパティ
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.
メモ: この機能はウェブワーカー内で利用可能です。
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();
仕様書
Specification |
---|
Fetch # ref-for-dom-request-signal② |