Как я могу найти, к какому кешу принадлежит ответ работника сервиса? - PullRequest
0 голосов
/ 09 октября 2018

По запросу, как мне определить, к какому кешу он принадлежит?match, несмотря на поиск во всех кешах, даст мне только кешированный ответ.Я хотел бы получить как имя объекта кэша / имя кэша, так и кэшированный ответ.

1 Ответ

0 голосов
/ 11 октября 2018

Если вам нужно узнать, в каком кеше находится ответ, боюсь, вам нужно будет вызывать match для каждого из кешей по отдельности, пока не найдете тот, где есть совпадение.

код может выглядеть примерно так:

async function findCachedResponse(request) {
    const cacheKeys = await caches.keys();
    const openCaches = await Promise.all(cacheKeys.map(cacheKey => caches.open(cacheKey)));
    const matches = await Promise.all(openCaches.map(cache => cache.match(request));
    const i = matches.findIndex(match => match !== undefined);
    if (i !== -1) {
        return { cache: cacheKeys[i], response: matches[i] };
    } else {
        return undefined;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...