JSFiddle - React, Tailwind, and code Playground
by Ahmad Baktash Hayeri
HTML
<script src="https://cdn.jsdelivr.net/bluebird/3.4.0/bluebird.js"></script>
<div id="monitor">
Start
</div>
JavaScript
var list = [10, 9, 8, 7, 6];
function run () {
list.reduce(function(promise, item, index){
return promise.then(function(){
return new Promise(function(resolve, reject){
setTimeout(function(){
resolve(item);
list.splice(0, 1);
console.log(list);
document.querySelector('#monitor').innerHTML = "Processing item@" + index;
}, 1500);
});
});
}, Promise.resolve())
.then(function(){
setTimeout(function(){
document.querySelector('#monitor').innerHTML = "Processing Finished.";
console.log(list);
}, 1500);
});
}
setTimeout(run, 1000);