Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 以每秒1行的速率解析CSV_Node.js_Csv - Fatal编程技术网

Node.js 以每秒1行的速率解析CSV

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

我一直在努力寻找库(以避免重新发明轮子)来读取CSV文件上的一行,并将值推送到下游进程


但是,我需要每秒只进行一次读取和处理。有没有办法在节点上执行此操作?

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

我通过使用承诺、
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。