Я пытаюсь использовать Busboy для анализа потока CSV следующим образом:
var result = [];
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {
file.pipe(csv.parse()).on('data', (data) => {
console.log("data");
console.log(data);
result.push(data);
});
file.on('end', () => {
console.log("result end");
console.log(result);
});
});
busboy.on('finish', () => {
console.log("result finish");
console.log(result);
res.end();
});
req.pipe(busboy);
Однако, когда я это делаю, я получаю это:
data
[ 'test1@example.com' ]
result end
[ [ 'test1@example.com' ] ]
result finish
[ [ 'test1@example.com' ] ]
data
[ 'test2@example.com' ]
data
[ 'test3@example.com' ]
Я думаю, что событие .on('finish'
не произойдет до тех пор, пока, ну, в конце концов, данные не будут обработаны.
Есть ли способ гарантировать, что все результаты будут проанализированы и помещены в массив в конце? Насколько я могу судить, так и должно работать