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'
在数据完成之前,事件不会发生。
有没有办法确保我已经解析了所有的结果,并将其放在一个数组的末尾?据我所知,这就是它的工作方式