- From: Jake Archibald <notifications@github.com>
- Date: Tue, 06 Jun 2017 09:06:06 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Tuesday, 6 June 2017 16:06:42 UTC
> If you passed sleep(Infinity) the browser would intervene.
Yep, and it could know which events it terminated early, which wouldn't be the case if `sleep(Infinity)` wasn't passed.
> a _developer_ will never not want to `waitUntil`
It's pretty common to not `waitUntil` in a fetch event.
> It might be useful to create a gist to demonstrate if there's a certain task/pattern that you think this wouldn't work for?
```js
addEventListener('install', event => {
event.waitUntil(doAsyncStuff());
});
```
In the above example, if the promise returned by `doAsyncStuff()` rejects, the service worker does not install.
```js
addEventListener('fetch', event => {
event.respondWith(
fetch(whatever).then(response => {
event.waitUntil(addThisToTheCache(response));
return response;
})
);
});
```
In the above example, the developer declares they want to handle this request by calling `event.respondWith` (it isn't handled by the service worker otherwise). The promise passed to `respondWith` should resolve with a response. `waitUntil` is used to further extend the event to carry out work that needs to happen beyond the response of the request.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/issues/1148#issuecomment-306535001
Received on Tuesday, 6 June 2017 16:06:42 UTC