function a(index,value){
return new Promise((resolve,reject)=>{
let j = 0,
// этот тикер симулирует async фанкцию, т.е. ajax например
h = setInterval(_ => {
if (++j==2) {
clearInterval(h)
console.log('step '+index+' finished');
resolve(a(++index,j))
}
},1000);
});
};
a(0,0)
async function request(){
return new Promise(resolve=>setTimeout(_=>resolve(),1000))
}
( async () => {
for (i=0;i<5;i++){
const data = await request()
console.log('another way | step ' + i + ' complete')
}
})()