title: Service worker promise.then is not defined
body: <p>I have this code:</p>
  
  <pre><code>self.addEventListener('fetch', function(event) {
  const promiseChain = doSomethingAsync()
        .then(() =&gt; doSomethingAsyncThatReturnsAURL(event))
        .then(someUrl =&gt; fetch(someUrl));
  event.respondWith(promiseChain);
  });
  </code></pre>
  
  <p>It keeps giving me this error:</p>
  
  <blockquote>
    <p>Uncaught TypeError: Cannot read property 'then' of undefined</p>
  </blockquote>
  
  <p>It picks it up on this line:</p>
  
  <p><code>.then(() =&gt; doSomethingAsyncThatReturnsAURL(event))</code></p>
  
  For reference:
  
  <p>Here is the function doSomethingAsyncThatReturnsAURL:</p>
  
  <pre><code>function doSomethingAsyncThatReturnsAURL(event) {
    var location = self.location;
  
    console.log("loc", location)
  
    self.clients.matchAll({includeUncontrolled: true}).then(clients =&gt; {
      for (const client of clients) {
        const clientUrl = new URL(client.url);
        console.log("SO", clientUrl);
        if(clientUrl.searchParams.get("url") != undefined &amp;&amp; clientUrl.searchParams.get("url") != '') {
          location = client.url;
        }
      }
  
    console.log("loc2", location)
  
    var url = new URL(location).searchParams.get('url').toString();
  
    console.log(event.request.hostname);
    var toRequest = event.request.url;
    console.log("Req:", toRequest);
  
    var parser2 = new URL(location);
    var parser3 = new URL(url);
  
    var parser = new URL(toRequest);
  
    console.log("if",parser.host,parser2.host,parser.host === parser2.host);
    if(parser.host === parser2.host) {
      toRequest = toRequest.replace('https://booligoosh.github.io',parser3.protocol + '//' +  parser3.host);
      console.log("ifdone",toRequest);
    }
  
    console.log("toRequest:",toRequest);
  
    var finalResult = 'https://cors-anywhere.herokuapp.com/' + toRequest;
  
    return finalResult;
  
    });
  }
  </code></pre>
  
  <p>And the doSomethingAsync function:</p>
  
  <pre><code>function doSomethingAsync() {
        console.log("ASYNC LOL");
  }
  </code></pre>