节点stream – 获得最大的调用堆栈超出

我似乎无法弄清楚为什么我得到这个错误与我的streampipe道。 我想我已经耗尽了所有的path,所以有什么我想念的东西:这是我有:

var myCsvStream = fs.createReadStream('csv_files/myCSVFile.csv'); var csv = require('fast-csv'); var myData = []; var myFuncs = { parseCsvFile: function (filepath) { var csvStream; csvStream = csv .parse({headers: true, objectMode: true, trim: true}) .on('data', function (data) { myData.push(data); }) .on('end', function () { console.log('done parsing counties') }); return csvStream; } } myCsvStream .pipe(myFuncs.parseCsvFile()) .pipe(process.stdout); 

process.stdout就是这样,我可以看到,数据可以继续到下一个stream,但是,当添加pipe(process.stdout) ,甚至一个through2双工stream我得到这个最大的调用堆栈到达错误。 有任何想法吗?

我想你应该这样写:

 var myCsvStream = fs.createReadStream('csv_files/myCSVFile.csv'); var csv = require('fast-csv'); var csvStream = csv .parse({headers: true, objectMode: true, trim: true}) .on('data', function (data) { myData.push(data); }) .on('end', function () { console.log('done parsing counties') }); myCsvStream .pipe(csvStream) .pipe(process.stdout); 

你可以把它全部包装在一个函数中。