1

由于某种原因,当我使用 async.parallel() 时,永远不会打印 'yyyyyyyyy' 字符串,如下所示。为什么是这样?我认为一旦调用了其他两个函数,就会调用最后一个函数。

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

1 回答 1

3

每个function传入的第一个参数都async.parallel应该接受一个callback它调用的,当它async知道它已经完成时:

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,它应该调用callbackwith

callback(err);

这样就async知道发生了错误,它会立即调用 last function

于 2013-08-12T03:45:41.957 回答