Как отменить / изменить / изменить / заменить запрос в responseWith? - PullRequest
0 голосов
/ 28 февраля 2020

Я использую рабочую коробку и пытаюсь кэшировать запросы примерно так:

this.serviceWorker.addEventListener('fetch', (event) => {
const request = event.request;
event.respondWith(
      caches.open('cache name')
         .then(cache => cache.match(request))
         .then(async (cachedResponse) => {
            // todo something

Как я могу отменить event.request и отправить свой пользовательский запрос? Спасибо за любую помощь.

1 Ответ

1 голос
/ 28 февраля 2020

Вы можете изменить или полностью изменить исходящий запрос следующим образом:

this.serviceWorker.addEventListener('fetch', (event) => {
  const request = event.request;
  return event.respondWith(
    caches.open('cache name')
      .then(cache => cache.match(request))
      .then(async (cachedResponse) => {
        // create a new request, fetchi it, and return the result
        return fetch(new Request(request.url ....))
       })

Обратите внимание на оператор возврата, который я добавил в третью строку кода:)

Подробнее о построении нового запроса: { ссылка }

...