JSFiddle - React, Tailwind, and code Playground
JavaScript
var myurls = ["url1", "url2", "url3"];
//dummy http.get
function HttpGet(url) {
return new Promise((resolve, reject) => {
console.log(`fetching ${url}`);
setTimeout(function(){
resolve(`done: ${url}`);
}, Math.floor(Math.random()*500));
});
}
function buildPromiseChain(items, func) {
var promise = new Promise((resolve, reject) => {
resolve([]);
});
items.forEach((item) => {
promise = promise.then((result) => {
return func(item).then((itemResult) => {
result.push(itemResult);
return result;
});
});
});
return promise;
}
buildPromiseChain(myurls, HttpGet).then((results) => console.log('done', results));