addEventListener("fetch", event => {
event.respondWith(app(event));
});
async function app(event) {
// Define the backend request
const backendResponse = fetch(event.request, {
backend: "origin_0"
});
//Define the timer
const rejectAfter150ms = new Promise((_, reject) => {
setTimeout(reject, 150);
});
// Race the request and the timer, set response as whatever happens first
const response = Promise.race([backendResponse, rejectAfter150ms]).catch(() => {
return new Response('backendResponse took more than 150ms to receive so we ignored it');
});
return response;
}