The handled
property of the FetchEvent
interface returns a promise indicating if the event has been handled by the fetch algorithm or not. This property allows executing code after the browser has consumed a response, and is usually used together with the waitUntil()
method.
A Promise
that is pending while the event has not been handled, and fulfilled once it has.
addEventListener("fetch", (event) => {
event.respondWith(
(async function () {
const response = await doCalculateAResponse(event.request);
event.waitUntil(
(async function () {
await doSomeAsyncStuff();
await event.handled;
return doFinalStuff();
})(),
);
return response;
})(),
);
});