FetchEvent: handled property
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.
Note: This feature is only available in Service Workers.
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.
Value
A Promise that is pending while the event has not been handled, and fulfilled once it has.
Examples
js
addEventListener("fetch", (event) => {
event.respondWith(
(async function () {
const response = await doCalculateAResponse(event.request);
event.waitUntil(
(async function () {
await doSomeAsyncStuff(); // optional
// Wait for the event to be consumed by the browser
await event.handled;
return doFinalStuff(); // Finalize AFTER the event has been consumed
})(),
);
return response;
})(),
);
});
Specifications
| Specification |
|---|
| Service Workers> # dom-fetchevent-handled> |
Browser compatibility
Loading…