配列に基づいていくつかの非同期関数を順次実行したいと考えています。
私はこれがそれを行うと思った:
var Promise = require("bluebird");
Promise.cast([1,2,3]).reduce(function(_,i){
console.log("Launching " + i);
return Promise.delay(Math.floor(Math.random()*1000)).then(function(){
console.log("Executing " + i);
});
},0);
しかし、私は得る
Launching 1
Launching 2
Launching 3
Executing 2
Executing 1
Executing 3
望ましい結果の代わりに
Launching 1
Executing 1
Launching 2
Executing 2
Launching 3
Executing 3
ここで完全に順次実行するにはどうすればよいですか?
約束なしでそれを行う方法を知っていることに注意してください。完全な約束のソリューションにのみ興味があります。