title: d3.js v5 - Promise.all replaced d3.queue
body: <p>I've been using d3.js v4 for sometime now and I've learned that Mike Bostock has replaced the d3.queue in the v5 release with the Promise native JavaScript object. I would like to check with you if this code that I have written is properly queuing (asynchronously) these URL's:</p>
  
  <pre><code>var makeRequest = function() {
      "use strict";
  
      var bli = [
          "http://stats.oecd.org/sdmx-json/data/BLI2013/all/all",
          "http://stats.oecd.org/sdmx-json/data/BLI2014/all/all",
          "http://stats.oecd.org/sdmx-json/data/BLI2015/all/all",
          "http://stats.oecd.org/sdmx-json/data/BLI2016/all/all",
          "http://stats.oecd.org/sdmx-json/data/BLI/all/all"
      ];
  
      var promises = [];
  
      bli.forEach(function(url) {
          promises.push(
              new Promise(function(resolve, reject) {
                  d3
                      .json(url)
                      .then(function(response) {
                          resolve(response);
                      })
                      .catch(function(error) {
                          console.log("Error on: " + url + ". Error: " + error);
                          reject(error);
                      });
              })
          );
      });
  
      Promise.all(promises).then(function(values) {
          console.log(values);
      });
  };
  
  makeRequest();
  </code></pre>
  
  <p>The code seems to function properly, but, is this proper code or is there a better way (a best practice approach) for queuing with Promise.all and d3.js? Is the catch error properly implemented?</p>