Şu anda Service Worker'da bir hizmet mantığına sahibim. Burada belirli bir event.respondWith() öğesi bittiyse, Service Worker içinde kontrol etmem gerekir. önbelleği silmem gerekiyor.Onu tanımak için herhangi bir yol var.Ben o olayı kontrol ettim.with()() veya bir geri çağrı yok.Event.respondithSonum bittiğinde (Event.respondithwith() için geri çağırma
cevap
Önbellek temizlemeniz, kullanılan Response
'dan bağımsızsa Promise event.respondWith()
'a geçtiğinde, event.respondWith()
olayının tamamlanıp tamamlanmadığına dair endişelenmeden fetch
olay işleyicisi içinde eşzamansız bir şekilde başlatabilirsiniz (örneğin), örneğin, her defasında bir önbelleği temizlemek istiyorsanızboyutta N girişleri geçmiş.
önbellek temizleme Promise yerine getirmek için kullanılmakta olduğu Response
özgüyse
Response
ile yerine getirerek Zinciri sonlandırmak emin olarak Promise zincirine mantığı eklemek istiyorum gidiyoruz .
fetch
olay işleyicisi üzerinde kontrol sahibi olduğunuzu varsayabilirim ve bunu yapabilir. yaptığın her
Response
kontrollü sayfaya geçirilen geciktirecek beri, Sen Promise zinciri içinde çok fazla yapmak istemiyorum
self.addEventListner('fetch', event => {
const p = promiseThatFulfillsWithResponse(); // Your logic goes here.
event.respondWith(p.then(response => {
return caches.open('my-cache-name')
.then(cache => cache.delete(event.request)) // Or whatever you want to delete.
.then(() => response); // Return response at the end of the chain!
});
});
: İşte bir genel (denenmemiş) bir yaklaşımdır.
Ayrıca p.then (_ => {deleteTheCache();}) 'yaptıktan sonra const p' ve sonra sadece' event.respondWith (p) '. – mjs
Soruyu açıklar mısınız? – Marco
Temelde event.respondWith() için bir geriçağırım işlevinin olup olmadığını bilmek istiyorum, bir hizmetin tamamlandığını serviceworker'dan nasıl öğrenebilirim? – biswpo