Looping promises
One way to loop on promises that's safe from the JS closure trap.
by jib1
HTML
<div id="div"></div>
JavaScript
var console = { log: function(msg) { div.innerHTML += "<p>" + msg + "</p>"; } };
[0,1,2,3,4,5,6,7].reduce(function(p, i) {
return p.then(function() {
return new Promise(function(r) { return setTimeout(r, 300) });
})
.then(function() { console.log(i); });
}, Promise.resolve())
.then(function() { console.log('fin'); })
.catch(function(e) { console.log(e.message); });