Response: error() 静态方法

error()Response 接口的一个静态方法,它返回一个与网络错误关联的新 Response 对象。

这在编写服务工作线程时非常有用:它使服务工作线程能够从 fetch 事件处理程序发送响应,这将导致主应用程序代码中的 fetch() 调用拒绝 Promise。

错误响应的 type 属性设置为 error

语法

js
Response.error()

参数

无。

返回值

一个 Response 对象。

示例

从服务工作线程返回网络错误

假设一个 Web 应用程序有一个服务工作线程,其中包含以下 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());
  }
});

使用此服务工作线程,应用程序的所有 fetch 请求都将通过服务工作线程传递到网络,除了获取 "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①

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅