title: Multiple fetch() in Promise.all - which one failed?
body: <p>If I have multiple <code>fetch()</code> calls within a <code>Promise.all</code> block, when one fails, it all fails. That's cool, I need them all to resolve.</p>
  
  <p>However, how can I find which one actually failed?</p>
  
  <p>In the following code, the <code>catch error</code>tells me: </p>
  
  <blockquote>
    <p>TypeError: Failed to fetch` </p>
  </blockquote>
  
  <p>which makes it impossible to construct an effective user error message should I choose to do so.</p>
  
  <pre><code>const goodUrl = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js';
  const badUrl = 'https://ajax.googleapis77.com/ajax/libs/jquery/2.1.3/jquery.min.js';
  Promise.all([
      fetch(goodUrl),
      fetch(badUrl), /* will fail */
      fetch(goodUrl)
  ]).then(([response1, response2, response3]) =&gt; {
      console.log(response1);
      console.log(response2);
      console.log(response3);
  }).catch((err) =&gt; {
      console.log(err);
  });
  </code></pre>
  
  <p><a href="https://jsfiddle.net/studiotime/wr6vj74a/2/" rel="nofollow noreferrer">Here's a fiddle (a snippet didn't play nice)</a></p>
  
  <p>I have looked for duplicates, <a href="https://stackoverflow.com/questions/44693382/using-fetch-api-with-promise-all">this is not one as the examples throw the same error</a></p>