我们已经开始使用CacheStorage API。通常它可以正常工作,但有时浏览器会陷入CacheStorage承诺永远不会响应(即他们既不解决也不拒绝)的情况。
一旦遇到这种情况,我可以在第一次通话时像以下内容一样100%复制它:
let promise = caches.open("TestDB");
console.log("open - started");
promise
.then(cc => console.log("open - complete"))
.catch(ex => console.log("open - failed", ex));
console.log("open - waiting");
在示例代码中它将打印:
open - started
open - waiting
但从不另两个日志。
任何想法为什么会这样?以及如何解决该问题?
如果我打开一个私人标签,则可以正常工作。从UI清除缓存也可以解决问题。
此内容已在Chrome和Safari上复制。
我们已经看到其他情况,其中open
调用成功,但随后match
随机失败(即无法解决),即,这似乎取决于对缓存的请求数量,例如添加console.log
似乎使问题减少了。