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① |
浏览器兼容性
加载中…