Совершенно новый для служащих и JS обещает, поэтому любая помощь приветствуется.
Веб-страница, которая не работает:
https://icbmaeronautics.co.uk
Ошибка, как показано в Chrome Dev Tools:
The FetchEvent for "http://localhost:3005/" resulted in a network error
response: the promise was rejected.
Promise.catch (async)
(anonymous) @ sw.js:29
sw.js:1 Uncaught (in promise) TypeError: Failed to fetch
Наценка за регистрацию работника сервиса (вроде нормально работает)
if('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/sw.js')
.then(function() { console.log("Service Worker Registered"); });
}
Код установки в файле сценария sw.js
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open('airhorner').then(function(cache) {
/* Particular urls which all install with code 200s */
})
);
});
И, наконец, код выборки, который, похоже, имеет проблему с event.respondWith()
функцией
self.addEventListener('fetch', event => {
// Let the browser do its default thing
// for non-GET requests.
if (event.request.method != 'GET') return;
// Prevent the default, and handle the request ourselves.
event.respondWith(async function() {
// Try to get the response from a cache.
const cache = await caches.open('dynamic-v1');
const cachedResponse = await cache.match(event.request);
if (cachedResponse) {
// If we found a match in the cache, return it, but also
// update the entry in the cache in the background.
event.waitUntil(cache.add(event.request));
return cachedResponse;
}
// If we didn't find a match in the cache, use the network.
return fetch(event.request);
}());
});