async.parallel() - 最后一个函数未被调用

时间:2013-08-12 03:34:01

标签: node.js asynchronous

出于某种原因,' yyyyyyyyy'当我使用async.parallel()时,从不打印字符串。为什么是这样?我认为一旦调用了另外两个函数,就会调用最后一个函数。

var async = require('async');
async.parallel([
    function() {
        console.log('xxxxxxxxxxx');
    },
    function() {
        console.log('ccccccccccc');
    }
], function(err, results){
    console.log('yyyyyyyyy');
});

1 个答案:

答案 0 :(得分:3)

function的第一个参数中传递的每个async.parallel都应该在其完成后调用callbackasync知道它已完成:

var async = require('async');
async.parallel([
    function(callback) {
        console.log('xxxxxxxxxxx');
        callback();
    },
    function(callback) {
        console.log('ccccccccccc');
        callback();
    }
], function(err, results){
    console.log('yyyyyyyyy');
});

如果其中一个functions发生错误,则应使用

调用callback
callback(err);

以便async知道发生了错误,并且会立即调用最后一个function