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

时间:2016-03-31 23:28:47

标签: javascript node.js csv stream fs

我正在尝试执行以下操作:

  1. 逐行流式传输csv文件。
  2. 修改每行中包含的数据。
  3. 对所有行进行流式处理和处理后,完成并继续执行下一个任务。
  4. 问题是.on("end").on("data")完成处理每一行之前触发。 .on("end")处理完所有行后如何才能触发.on("data")

    以下是我所说的一个简单示例:

    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);
    });
    

    提前致谢。

0 个答案:

没有答案