javascript - q.all being returned before promise is completed -
i'm trying use q.all manage process of multiple npm install module_name methods.
strangely, appears though promise being returned before promise completed.
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 = []; (var =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'); }); }, i've tried using both done & then methods after all, same result, promise returned before npm install has completed.
installmodule should written this:
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); } else { defer.resolve(); } }); return defer.promise; } it installmodule should return promise, not callback.
Comments
Post a Comment