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

See also