Re: [slightlyoff/ServiceWorker] Allow respondWith() to be called asynchronously or allow some way to cancel the response. (#836)

Sorry to necrobump guys:

 I think this issue was sort of sidetracked by middleware as the use case. Once you call ```event.respondWith``` afaik there is no way to fallback to the default behavior. Unfortunately for range requests this is important.

Suppose I want to asynchronously get a decision whether to pull from cache, use fetch, or just fallback to the default behavior.

```javascript
self.addEventListener('fetch', event => {
  return event.respondWith(async function () {
    const action = await getAction();
    if (action === 'cache') {
      return await getFromCache(event.request);
    } else if (action === 'fetch') {
      return await fetch(event.request);
    } else {
      // How to fallback to default behavior as if I didn't call respondWith.
    }
  });
});
```

My expectation would be that I could either resolve my `respondWith` to null or wrap with `waitUtil` and then never call `event.respondWith`. I don't see those in spec and they don't work.

Has there been an update to allowing async `respondWith` or  are we just waiting for ```fetch``` to get in line with the default passthrough behavior with partial content and whatnot.



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/slightlyoff/ServiceWorker/issues/836#issuecomment-239700349

Received on Sunday, 14 August 2016 21:59:53 UTC