2016-06-03 6 views
1

데이터 1과 데이터 2를 마지막 함수에 직접 전달하려고합니다. 데이터 1을 두 번째 함수로 전달하고 거기에서 데이터 1 + 데이터 2를 마지막 함수로 전달할 때 작동합니다. 그러나 문제는 데이터 1을 두 번째 함수에 전달하고 싶지 않다는 것입니다. 'asyc.series''async.parallel'?으로 처리 할 수 ​​있습니까?async.waterfall 모델에서 전달되는 데이터가 작동하지 않습니까?

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); 
      }); 
    } 

답변

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); 
    }); 
} 
함께해야