2
我想要做的事很简单,但我不明白一件小事......的NodeJS/Q:链接承诺依次
var Q = require('q');
var funcs = ["first", "second", "third", "fourth"];
function main(){
// really don't know how to chain sequentially here ...
var result = Q();
funcs.forEach(function (f) {
result = treat(f).then(f);
});
}
function treat(t){
var deferred = Q.defer();
setTimeout(function(){
deferred.resolve("treated "+ t);
},2000);
return deferred.promise;
}
main();
我想我的funcs中数组的每一个元素被“处理“顺序,输出会再是这样的:
treated first
//2 seconds later
treated second
//2 seconds later
treated third
//2 seconds later
treated fourth
我不能做到这一点:(它应该是简单的,我不明白的东西:(