我想把下面的代码 Package 在asyn函数中,并等待内容写入文件:
const fs = require("fs");
const { stringify } = require("csv-stringify");
const db = require("./db");
const filename = "saved_from_db.csv";
const writableStream = fs.createWriteStream(filename);
const columns = [
"year_month",
"month_of_release",
"passenger_type",
"direction",
"sex",
"age",
"estimate",
];
const stringifier = stringify({ header: true, columns: columns });
db.each(`select * from migration`, (error, row) => {
if (error) {
return console.log(error.message);
}
stringifier.write(row);
});
stringifier.pipe(writableStream);
console.log("Finished writing data");
当内容写入文件时,函数必须解析。但我怎么能检测到那个事件呢?我在stringifier
和writableStream
上都添加了事件侦听器,但没有调用
stringifier.on('close', ()=> console.log( `STR CLOSED`))
stringifier.on('finish', ()=> console.log( `STR FINISH`))
writableStream.on('close', ()=> console.log( `WS CLOSED`))
writableStream.on('finish', ()=> console.log( `WS FINISH`))
这里的例子
1条答案
按热度按时间pieyvz9o1#
捕获管道,然后监听其上的
finish
事件: