title: Promise.all doesn't return none of it's promises if one of them fail
body: <p>I had posted a <a href="https://stackoverflow.com/a/49534634/9545044">question earlier about Promise.all</a> and d3.js v5, but another question come up regarding this piece of code:</p>
  
  <pre><code>var files = ["data1.json", "data2.json", "data3.json"];
  var promises = [];
  
  files.forEach(function(url) {
      promises.push(d3.json(url))
  });
  
  Promise.all(promises).then(function(values) {
      console.log(values)
  });
  </code></pre>
  
  <p>If one of the URL's is invalid, the Promise.all doesn't return any of the results; in other words, all responses must be valid for the Promise.all to return the values. How can one get the other responses in the case of an error in one of the URL's?</p>