Response: error() 静的メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年10月以降、すべてのブラウザーで利用可能です。
error() は Response インターフェイスのメソッドで、ネットワークエラーに関連付けられた新しい Response オブジェクトを返します。
これは主にサービスワーカーを書くときに便利です。サービスワーカーが fetch イベントハンドラーからレスポンスを送信することで、メインアプリコードの fetch() 呼び出しにおけるプロミスを拒否させることができます。
エラーレスポンスでは、type が error に設定されています。
構文
js
Response.error()
引数
なし。
返値
Response オブジェクト。
例
>サービスワーカーからネットワークエラーを返す
あるウェブアプリにサービスワーカーがあり、そのサービスワーカーには次のような fetch イベントハンドラーが格納されているとします。
js
// service-worker.js
self.addEventListener("fetch", (event) => {
const url = new URL(event.request.url);
if (url.pathname === "/salamander.jpg") {
event.respondWith(Response.error());
}
});
このサービスワーカーを使うと、アプリからのフェッチリクエストはすべてサービスワーカーを通過してネットワークに渡ります。これは、次のメインスレッドのコードでエラーが発生し、catch ハンドラーが実行されるということです。
js
// main.js
const image = document.querySelector("#image");
try {
const response = await fetch("salamander.jpg");
const blob = await response.blob();
const objectURL = URL.createObjectURL(blob);
image.src = objectURL;
} catch (e) {
console.error(e);
}
仕様書
| 仕様書 |
|---|
| Fetch> # ref-for-dom-response-error①> |