1

我想将数据1和数据2直接传递给最后一个函数。当我将数据 1 传递给第二个函数并从那里将数据 1 + 数据 2 传递给最后一个函数时,它正在工作。但问题是我不想将数据 1 传递给第二个函数。我们可以用'asyc.series'and来做'async.parallel'吗?

 var fs = require("fs");
    var async = require('async');
    async.waterfall([
        myFirstFunction,
        mySecondFunction,            

    ], function (err,data1,data2) {
        var values={'data1':data1,'data2':data2,'msg':"hai"}
       console.log("values: %j", values);
    });
    function myFirstFunction(callback) {
          fs.readFile('file1.js','utf8',function(err,data1){
          callback(null,data1);
           });
    }
    function mySecondFunction(callback) {
         fs.readFile('file2.js','utf8',function(err,data2){
          callback(null,data2);
          });
    }
4

1 回答 1

1

你应该用async.parallel 来做

var fs = require("fs");
var async = require('async');
async.parallel([
    myFirstFunction,
    mySecondFunction,            

], function (err, results) {
    if(err) console.error(err);
    var data1 = results[0];
    var data1 = results[1];
});

function myFirstFunction(callback) {
    fs.readFile('file1.js','utf8',function(err,data1){
        callback(null,data1);
    });
}

function mySecondFunction(callback) {
    fs.readFile('file2.js','utf8',function(err,data2){
        callback(null,data2);
    });
}
于 2016-06-03T10:11:20.647 回答