等到Q Promises完成子进程链

时间:2016-01-19 14:37:09

标签: javascript node.js q child-process

我需要运行几个子进程并等待它们完成,而不是使用长链回调我使用Q promises。然而,无论我尝试什么,都会执行子进程,而Q只是继续而不等待结果。

var clones = repositores.map(function (project) {
    return Q.Promise(function (fullfill, reject) {
        require('child_process').exec('cd ' + clonepath + ' && git clone ' + project.repourl, function (err, stdout, stderr) {
            console.log(stdout);
            if (err) {
                console.log(stderr);
                reject(err);
            }
            else {
                fullfill();
            }
        });
    })
});

Q.all(clones).then(function(){
    console.log("Clones complete");
}).done();

这将给予"克隆完成"克隆结果出来之后。

我尝试过使用child_process.spawn,fork,exec,execFile,结果与回调和基于事件相同。

我还尝试将Promises包装在返回的函数中。

0 个答案:

没有答案