0

我们已经开始使用 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似乎使问题不那么频繁。

4

0 回答 0