Source code

Revision control

Copy as Markdown

Other Tools

async function messageClient(clientId, message) {
const client = await clients.get(clientId);
client.postMessage(message);
}
addEventListener('fetch', event => {
let resolve;
const promise = new Promise(r => resolve = r);
function onAborted() {
messageClient(event.clientId, event.request.signal.reason);
resolve();
}
messageClient(event.clientId, 'fetch event has arrived');
event.respondWith(promise.then(() => new Response('hello')));
event.request.signal.addEventListener('abort', onAborted);
});