Async.forEach调用回调

时间:2016-07-12 22:41:28

标签: javascript node.js asynchronous callback

如何在完成系列后调用foreach回调?

我的代码:

async.forEach(rowsIni, function (row, callback2) {
    strQuery = "SELECT ...";
    DB.query(strQuery, row, function (err, rows) {
        if (err) {
            console.log("SQL Error(SELECT) > " + err.message);
        } else {
        async.series([
            function (callback) {
                async.parallel([
                    function (callback) {
                        callback();
                    },
                    function (callback) {
                        callback();
                    }
                 ], function (err) {
                     callback();
                 });
            },
            function (callback) {
                callback();
            }
        ], function() {
            callback2
        });
        }
    });
}, function (err) {
    if (err) {
        console.log("ASYNC Error > " + err.message);
    }
    console.log('END OF FOREACH');
    callback(otherFunction);
});

如何调用callback2?如果我这样调用,则不会调用callback2。

1 个答案:

答案 0 :(得分:0)

async.series([...], function() {
    callback2 // does nothing
})

您实际上并未致电callback2。使用callback2()(调用它)或

async.series([...], callback2);

只是传递回调函数。

编辑:

async.eachSeries(rowsIni, function (row, callback2) {
    ...
    async.series([
        function (callback) {
            async.parallel([
                ... functions
            ], callback);
        },
        function (callback) {
            callback();
        }
    ], callback2);
});