使用async.parallel时出错

我在node.js中使用asynchronous时遇到了绑定错误。 有问题的代码:

var async = require('async'); var fs = require('fs'); var path = require('path'); function ignoreWhiteSpaceJudge(outDesired, outGenerated){ var contentOutDesired = ""; var contentOutGenerated = ""; async.parallel([ function(outDesired, callback) { console.log(outDesired); fs.readFile(outDesired, 'utf8',function(error, data) { if (error) { return callback(error); } else { contentOutDesired = data; return callback(); } }); }, function(outGenerated, callback) { fs.readFile(outGenerated, 'utf8', function(error, data) { if (error) { return callback(error); } else { ontentOutGenerated = data; return callback(); } }); }], function(error){ if(error){ console.log(error); } else{ console.log(contentOutDesired); console.log(ontentOutGenerated); } }); } var pathToOutDesired = path.normalize('/home/repos/gabbar/testcases/outputs/output_1_1.out'); var pathToOutGenerated = path.normalize('/home/repos/gabbar/testcases/outputs/output_1_2.out'); ignoreWhiteSpaceJudge(pathToOutDesired, pathToOutGenerated); 

我得到的错误是这样的:

  [Function] fs.js:423 binding.open(pathModule._makeLong(path), ^ TypeError: path must be a string at Object.fs.open (fs.js:423:11) at Object.fs.readFile (fs.js:206:6) at async.parallel.fs.readFile.ontentOutGenerated (/home/repos/gabbar/validation/ignoreWhiteSpaceJudge.js:17:18) at /home/repos/gabbar/node_modules/async/lib/async.js:570:21 at /home/repos/gabbar/node_modules/async/lib/async.js:249:17 at /home/repos/gabbar/node_modules/async/lib/async.js:125:13 at Array.forEach (native) at _each (/home/repos/gabbar/node_modules/async/lib/async.js:46:24) at async.each (/home/repos/gabbar/node_modules/async/lib/async.js:124:9) at _asyncMap (/home/repos/gabbar/node_modules/async/lib/async.js:248:13) 

我对node.js比较陌生,第一次尝试使用async模块。 在这方面能有人帮助我吗?

您正在使用parallelcallback函数覆盖path。

只需从您的函数中删除第一个参数,这是callback而不是数据:

 function(callback) { console.log(outDesired); fs.readFile(outDesired, 'utf8',function(error, data) { if (error) { return callback(error); } else { contentOutDesired = data; return callback(); } }); }, function(callback) { fs.readFile(outGenerated, 'utf8', function(error, data) { if (error) { return callback(error); } else { ontentOutGenerated = data; return callback(); } }); }