Javascript createReadStream结束在数据完成处理之前激发

Javascript createReadStream结束在数据完成处理之前激发,javascript,node.js,csv,stream,fs,Javascript,Node.js,Csv,Stream,Fs,我正在努力做到以下几点: 逐行传输csv文件 修改每行中包含的数据 一旦所有线路都经过流式传输和处理,完成并继续执行下一个任务 问题是,.on(“end”)在.on(“data”)处理完每一行之前触发。在.on(“数据”)处理完所有行后,如何才能让.on(“结束”)触发 下面是我所说内容的一个简单示例: import parse from 'csv-parse'; var parser = parse({}); fs.createReadStream(this.upload.locatio

我正在努力做到以下几点:

  • 逐行传输csv文件
  • 修改每行中包含的数据
  • 一旦所有线路都经过流式传输和处理,完成并继续执行下一个任务
  • 问题是,
    .on(“end”)
    .on(“data”)
    处理完每一行之前触发。在
    .on(“数据”)
    处理完所有行后,如何才能让
    .on(“结束”)
    触发

    下面是我所说内容的一个简单示例:

    import parse from 'csv-parse'; 
    
    var parser = parse({});
    
    fs.createReadStream(this.upload.location)
    .pipe(parser)
    .on("data", line => {
      var num = Math.floor((Math.random() * 100) + 1);
      num = num % 3;
      num = num * 1000;
      setTimeout( () => { 
        console.log('data process complete');
      }, num);
    })
    .on("end", () => {
       console.log('Done: parseFile');
       next(null);
    });
    

    提前感谢。

    来自:“请注意,除非数据被完全消耗,“结束”事件不会触发。”我只能想象发生了一些奇怪的事情。是否
    管道
    数据
    不应该一起使用?也许可以将
    数据
    事件处理程序添加到
    解析器
    中而不是此处?这是一个明智的想法。解析器正在引用
    从“csv parse”导入解析我试试看