JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/bluebird/1.0.0/bluebird.js"></script>

JavaScript

function loopArray(array) {
    var arrayOfPromises = [];
    for (var i = 0; i < array.length; i++) {
        arrayOfPromises.push(doSomethingAsync(array[i]));
    }

    Promise.settle(arrayOfPromises).then(function (results) {
        //All async function calls are done!
        //Do whatever you want with the data!
        console.log("All async calls done! You can inspect the result!");
        console.log(results);
    });
}


function doSomethingAsync(item) {
    return new Promise(function(resolve, reject){
        console.log("Entering async function call " + item);
        if(item === "three"){
            reject("bad value!");
        }
    	resolve(item + " promise done!");
    });
}
    
    
loopArray(["one","two","three"]);