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
.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”导入解析代码>我试试看