Delayed Iteration
JavaScript
function delayedIteration(max, i = max + 1) {
return new Promise(resolve => {
console.log(i)
if (i === 1) {
resolve();
return;
}
delayedIteration(max, --i).then(() =>
setTimeout(() => {
console.log(i);
resolve();
}, 3000)
);
})
}
delayedIteration(10);