Response: error() 靜態方法
注意:此功能在 Web Workers 中可用。
Response 介面的 error() 靜態方法會返回一個與網路錯誤相關聯的新的 Response 物件。
這主要在編寫 service worker 時非常有用:它能夠讓 service worker 從 fetch 事件處理程式傳送一個響應,該響應會導致主應用程式程式碼中的 fetch() 呼叫拒絕 Promise。
錯誤響應的 type 被設定為 error。
語法
js
Response.error()
引數
無。
返回值
一個 Response 物件。
示例
從 Service Worker 返回網路錯誤
假設一個 Web 應用程式有一個 service worker,其中包含以下 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());
}
});
有了這個 service worker,應用程式中的所有 fetch 請求都將透過 service worker 傳送到網路,但獲取 "salamander.jpg" 的請求除外,該請求將被拒絕。這意味著以下主執行緒程式碼將丟擲錯誤,並且 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① |
瀏覽器相容性
載入中…