完成所有迭代后的async.each回调

时间:2015-06-26 01:32:00

标签: node.js asynchronous async.js

我一直在用这段代码敲打几个小时。此外,我之前多次使用过“ async.each ”。可能是代码只需要一组不同的工作。这是代码和问题。

async.each(process.argv, function(file, callback){
    runFile(file, callback);

}, function(err){
    console.log("Here is the error!:" + err +"files to unstage: " + filesToUnstage)

    if(err)
        console.log(err);
    else{
        if(filesToUnstage) {
            __unstage();
        }
    }
});

RUNFILE:

function runFile(filename, callback) {
    // Do a bunch of stuff ....
    __parseOutput(output, callback);
}

__ parseOutput:

function __parseOutput(output, callback){
    //Do some if else statement and do console.log
    return callback(null);
}

问题:在所有迭代完成后,不会调用function(err){..}的最终回调,即async.each

1 个答案:

答案 0 :(得分:1)

所有问题都是由回调之间调用异步方法引起的。我等待这个有问题的功能完成,然后调用callback。在我的情况下,我使用async.waterfall等待,因为我必须将值从一个传递到另一个。对于类似问题,请阅读此问题的评论,特别是@Gepser的评论。