Почему обещание CacheStorage.open никогда не отвечает?

Мы начали использовать 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 кажется, делает проблему менее частой.

0 ответов

Другие вопросы по тегам