【发布时间】:2021-12-10 20:39:31
【问题描述】:
我正在尝试读取一个 csv 文件,为 csv 上的每条记录获取数据并执行一些操作,最后(在所有异步操作完成后)编写一个新的 csv 文件,代码如下:
async function readInputCsv() {
results = [];
fs.createReadStream('./example_short.csv')
.pipe(csv())
.on('data', async function(data){
console.log("trying for name: ", data.username);
let edu = await getLastEducation(data.username);
results.push({
name: data.username,
level: edu
})
console.log(data.username,": ", edu)
}).on("end", () => {
console.log("end ! ");
writeCsv(results);
});
}
发生的事情是“结束!”在 getLastEducation 函数返回响应之前打印
【问题讨论】:
-
很好的解决方案是在读取流关闭后开始处理数据(
end)。 -
这似乎更好,谢谢
标签: javascript node.js csv async-await