Я использую модуль узла csv-parser
для захвата заголовков потоковых CSV-файлов; Я использую источник событий 'headers', который встроен в модуль.
Я перебираю массив потоков чтения csv, которые я передаю через мою функцию getHeaders()
. Сразу после захвата заголовков потокового 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}`)
})
});
}