I'm trying to run a list of functions synchronously after a loop using promise.all()
but my code doesn't work as expected.
Does someone know what I did wrong?
my code is :
var Promise = require('promise');
var promises = [];
for (var i = 0; i < 3; i++) {
console.log('push promise ' + i);
promises.push(foo(i));
}
Promise.all(promises)
.then(function (data) {
console.log("done");
});
function foo(i) {
return new Promise(function (resolve, reject) {
console.log('---> foo i ' + i);
resolve('done foo ' + i);
});
}
but the output is
push promise 0
---> foo i 0
push promise 1
---> foo i 1
push promise 2
---> foo i 2
done
where I expect
push promise 0
push promise 1
push promise 2
---> foo i 0
---> foo i 1
---> foo i 2
done
Thank you in advance.