我正在使用csv-parser节点模块来捕获流式 csv 文件的标头;我正在使用一个内置在模块中的“标题”事件发射器。
我正在循环通过我的getHeaders()函数传递的一组 csv 读取流。在我捕获流 csv 的标头之后,我想关闭该流,然后将下一个 csv 流传递给函数,以便我可以获取这些标头,然后关闭流,依此类推...
做这个的最好方式是什么?我尝试了几种不同的方法,包括.destroy(),但我还没有找到有效的解决方案。也许我试图在错误的位置关闭流?这是我所拥有的:
function getHeaders(dataStream) {
return new Promise((resolve, reject) => {
dataStream
.pipe(csv())
.on('headers', (headers) => {
let headerArray = Array.prototype.slice.call(headers);
resolve(headerArray);
dataStream.destroy();
})
.on('error', (err) => {
reject(`err from readingFile ${err}`)
})
});
}