5
我想依序执行一些基于数组的异步函数。使用承诺顺序执行函数
我认为这将做到这一点:
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
如何确保完全顺序执行这里 ?
请注意,我知道如何做到这一点,没有承诺,我只对完全承诺的解决方案感兴趣。
是的,升级Bluebird到1.0.8修复了这个问题。 –
如果有人正在阅读本文并且被卡住在Bluebird的