Return collect response when fail put cache to storage (#7863)

* return collect response when fail put cache to storage

* cleanup callback
This commit is contained in:
Hinaloe 2018-06-21 03:55:17 +09:00 committed by Eugen Rochko
parent cd1b90d223
commit c3b40a6950
1 changed files with 8 additions and 10 deletions

View File

@ -32,8 +32,11 @@ self.addEventListener('fetch', function(event) {
const asyncCache = openWebCache(); const asyncCache = openWebCache();
event.respondWith(asyncResponse.then( event.respondWith(asyncResponse.then(
response => asyncCache.then(cache => cache.put('/', response.clone())) response => {
.then(() => response), const clonedResponse = response.clone();
asyncCache.then(cache => cache.put('/', clonedResponse)).catch();
return response;
},
() => asyncCache.then(cache => cache.match('/')))); () => asyncCache.then(cache => cache.match('/'))));
} else if (url.pathname === '/auth/sign_out') { } else if (url.pathname === '/auth/sign_out') {
const asyncResponse = fetch(event.request); const asyncResponse = fetch(event.request);
@ -58,14 +61,9 @@ self.addEventListener('fetch', function(event) {
return asyncResponse.then(response => { return asyncResponse.then(response => {
if (response.ok) { if (response.ok) {
const put = cache.put(event.request.url, response.clone()); cache
.put(event.request.url, response.clone())
put.catch(() => freeStorage()); .catch(()=>{}).then(freeStorage()).catch();
return put.then(() => {
freeStorage();
return response;
});
} }
return response; return response;