以每秒1行的速度parsingCSV

我一直在试图find库(以避免重新发明轮子)读取CSV文件中的一行,并将值推送到下游进程。

但是,我需要读取和处理每秒只发生一次。 有没有办法做到这一点的节点?

最近我遇到了一个类似的问题,因为我需要一次一行地读取文件的方法,在处理完前一个文件之前不要移动到下一个文件。

我通过使用promise, stream.pause()stream.resume()来解决它。 你可以这样做:

 const Promise = require('bluebird'); const fs = require('fs'); const byline = require('byline'); function readCSV(file, callback) { let stream = fs.createReadStream(file); stream = byline.createStream(stream); stream.on('data', (line) => { stream.pause(); Promise.resolve(line.toString()) .then(callback) .then(() => setTimeout(() => stream.resume(), 1000)); }); } readCSV('file.csv', console.log);