【发布时间】:2014-03-11 07:31:49
【问题描述】:
我正在尝试使用q.all 来管理多个npm install module_name 方法的进程。
奇怪的是,看起来好像在承诺完成之前就返回了承诺。
installNodeModules: function(module_list){
function installModule(module_name){
var defer = q.defer();
console.log(module_name);
exec_child_process('npm install '+module_name, function(err,stdout,stderr){
if(err) defer.reject(err);
defer.resolve();
return defer.promise;
});
}
var promise_array = [];
for (var i =0; i<module_list.length;i++){
promise_array.push(installModule(module_list[i]));
console.log('promises array created');
}
q.all(promise_array).done(function(){
console.log('promises returned');
});
},
我尝试在all 之后同时使用done 和then 方法,但结果相同,承诺在npm install 完成之前返回。
【问题讨论】:
标签: javascript node.js promise q