查看来自service worker的请求是否成功
Seeing if a request succeeds from within a service worker
我的service worker中有以下代码:
self.addEventListener('fetch', function (event) {
var fetchPromise = fetch(event.request);
fetchPromise.then(function () {
// do something here
});
event.respondWith(fetchPromise);
});
然而,它在开发控制台中做了一些奇怪的事情,似乎使脚本异步加载而不是同步加载(在这种情况下是坏的)。
是否有任何方法可以在不手动调用fetch(event.request)
的情况下侦听请求何时完成?
// This doesn't work
self.addEventListener('fetch', function (event) {
event.request.then(function () {
// do something here
});
});
如果你想确保在响应返回到页面之前执行整个系列的操作,你应该响应整个承诺链,而不仅仅是fetch返回的初始承诺。
self.addEventListener('fetch', function(event) {
event.respondWith(fetch(event.request).then(function(response) {
// The fetch() is complete and response is available now.
// response.ok will be true if the HTTP response code is 2xx
// Make sure you return response at the end!
return response;
}).catch(function(error) {
// This will be triggered if the initial fetch() fails,
// e.g. due to network connectivity. Or if you throw an exception
// elsewhere in your promise chain.
return error;
}));
});
相关文章:
- 我的jQuery加载请求是否被调用了两次
- Web 工作线程中的同步 XHR 请求是否仍会锁定浏览器
- 从 Web Worker 执行 AJAX 请求是否可行
- 如何在mvc3视图javascript中查找当前请求是否为ajax
- 如何检查AJAX请求是否已完成
- 如何使用请求 npm 模块判断 http 请求是否完成
- 确定 Node .js 应用程序中的请求是否为本地请求
- 如何验证请求是否来自您网站上的脚本
- 检查 ajax 请求是否在大多数情况下失败
- 检查请求是否来自网络而不是手动
- Mongodb 找到一个,但首先检查请求是否为空
- PHP中有什么方法可以检测请求是否来自浏览器后退按钮
- 检查请求是否被用户使用 javascript 阻止
- 如何验证请求是否来自特定 Web 应用
- 在大多数情况下,POST 请求是否可以替代 GET 请求
- 测试ajax请求是否尚未以角度发出
- AJAX请求是否覆盖另一个请求
- 从客户端发出instagram API请求是否安全
- 如何判断请求是否应该呈现在服务器端?(ReactJS)
- JavaScript:失败的图像请求是否有error属性