Node.js 以每秒1行的速率解析CSV
我一直在努力寻找库(以避免重新发明轮子)来读取CSV文件上的一行,并将值推送到下游进程Node.js 以每秒1行的速率解析CSV,node.js,csv,Node.js,Csv,我一直在努力寻找库(以避免重新发明轮子)来读取CSV文件上的一行,并将值推送到下游进程 但是,我需要每秒只进行一次读取和处理。有没有办法在节点上执行此操作?我最近遇到了一个类似的问题,因为我需要一种方法一次读取一行文件,并且在处理完前一行之前不移动到下一行 我通过使用承诺、stream.pause()和stream.resume()解决了这个问题。你可以这样做: const Promise = require('bluebird'); const
但是,我需要每秒只进行一次读取和处理。有没有办法在节点上执行此操作?我最近遇到了一个类似的问题,因为我需要一种方法一次读取一行文件,并且在处理完前一行之前不移动到下一行 我通过使用承诺、
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);
使用async.parallel并在回调中使用settimeout。