Я использую рабочий ящик в своем проекте, но проблема не связана с рабочим местом.
Может кто-нибудь сказать мне, как получить список всех URL-адресов из определенного кэша и вернуть его в функцию обратного вызова.
Я пытаюсь показать пользователям список всех кэшированных URL-адресов и возможность их удаления. Но я не могу заполнить / показать список всех кэшированных URL.
Что я делаю, это:
function queryCache(){
var url = [];
caches.open('mycache').then(function (cache){
cache.keys().then(function(keys){
return new Promise(function(resolve, reject) {
keys.forEach(function (request, index, array) {
cache.match(request).then(function (response){
url.push(response.url);
})
})
resolve();
});
}).then(function(){
console.log(url); // lists all urls in console as array
cacheList(url);
});
})
}
function cacheList(Items)
{ for(var i = 0; i < Items.length; i++){
console.log('Items: '+Items[i]); //never reaches
}
console.log(Items.length); // always show 0
}
когда я вызываю queryCache () из консоли, cacheList (Items) вызывается правильно, но проблема в том, что Items - это всегда пустой массив, а его длина всегда равна 0.
Возможно, я не использую разрешение Promise должным образом. Пожалуйста помоги
Спасибо