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