Мы начали использовать 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
, но никогда два других журнала.
Любые идеипочему это случилось?и как решить проблему?
Если я открою личную вкладку, то она работает нормально.Очистка кеша из пользовательского интерфейса также решает проблему.
Это было воспроизведено в Chrome и Safari.
Мы видели другие ситуации, когда open
вызов завершается успешно, но затем match
не удается (т.е. не разрешается) случайным образом, т. Е. Кажется, что оно зависит от количества запросов в кэш, поскольку добавление console.log
, похоже, делает проблему менее частой.