var getProviderInfo = function (provider) { return new Promise(function (resolve, reject) { var time = ~~(Math.random() * 2000) + 2000; // Make request and get the data, simulate request api, no fail in our case window.setTimeout(function () { return resolve({ data: provider + " success in " + time }); }, time); }); }; var providers = [ getProviderInfo("facebook"), getProviderInfo("google"), getProviderInfo("linkedin"), getProviderInfo("twitter"), ]; var handleResult = function (result) { console.log("All the promises are resolved now we have data"); console.log("Result", result); }; Promise.all(providers).then(handleResult);