为什么CacheStorage.open承诺永远不会响应?

时间:2018-12-18 10:02:49

标签: javascript google-chrome promise cachestorage

我们已经开始使用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似乎使问题减少了。

0 个答案:

没有答案