JSFiddle - React, Tailwind, and code Playground

by QW01_01

JavaScript

var arr = ['a', 'b', 'c'];

function asyncForeach(arr, cb, pr, i){
    i = i || 0;
               
    if(i < arr.length){
        if(pr){
    		return pr.then(function(){return asyncForeach(arr,cb,cb(arr[i]),++i)});
        }else{
        	return asyncForeach(arr,cb,cb(arr[i]),++i);
        }
    }else{
        return pr;
    }
}

asyncForeach(arr, function(e){
	return new Promise(function(resolve, reject) {    
        setTimeout(function(){
            console.log(e);
            resolve(e);
        }, 1000);
  	})
}).then(function(){
	console.log('finished');
})