Node.js 异步。完成所有迭代后的每个回调

Node.js 异步。完成所有迭代后的每个回调,node.js,asynchronous,async.js,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: " + filesToUnst

我已经用我的头撞了这段代码几个小时了。此外,我以前多次使用过“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();
        }
    }
});
运行文件:

function runFile(filename, callback) {
    // Do a bunch of stuff ....
    __parseOutput(output, callback);
}
__解析输出:

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

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

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

运行文件是否已执行?process.argv也是一个空数组吗?是的!一切都执行得很好,除了上面提到的最终回调之外,我从所有函数中获得了所需的输出。没有
进程。argv
不是空的(交叉检查)。进入
//执行一些if-else语句并执行console.log
也许你不调用你的callback你应该在每个函数中尝试
console.log(callback)
,看看你是否真的在传递it@Gepser如您所见,有一个
返回回调(null)
紧接着
//执行一些if-else语句并执行console.log
。此
回调
位于所有
if-else
语句之外,位于
\u parseOutput
函数的末尾。感谢您对
console.log(callback)
的建议,但我已经尝试过了,它包含正确的
callback
(如果多次调用,则抛出错误等)