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 的浏览器中加载。