| 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); | |
| }); |