部将对象推到数组上"/>
从.on事件内部将对象推到数组上
我有一些csv数据,我需要将这些数据解析为要构建的API的对象数组。
我能够看到我正在使用的解析器正在按预期方式工作:
const csv = require('fast-csv')
const fs = require('fs');
const path = require('path');
let results = [];
async function parseCSVFromCSV(_sourceCSVFilePath){
return new Promise((resolve, reject) => {
fs.createReadStream(_sourceCSVFilePath)
.pipe(csv.parse({ headers: true }))
.on('error', error => reject(error))
.on('data', row => {
console.log(row);
results.push(row);
})
resolve(results);
})
}
因此console.log(row)
将按预期方式打印出已解析的对象,但结果对象为空。我需要此解析后的数据,但是无论我如何尝试,都无法获得使用解析后的csv填充的结果。
关于我在这里缺少什么的任何指导?
回答如下:所以我知道了我需要做什么:
const fs = require('fs');
const path = require('path');
const csv = require('fast-csv');
async function getData(){
let arrOfObj = [];
fs.createReadStream(path.resolve(__dirname, 'downloads', 'sampleData.csv'))
.pipe(csv.parse({ headers: true }))
.on('error', error => console.error(error))
.on('data', row =>
{arrOfObj.push(row);
//console.log(row);
})
.on('end', rowCount => { printData(arrOfObj);
});
}
async function printData(_arrOfObj){
console.log(_arrOfObj);
}
getData();
基本上,期望在end
事件内部无法访问完成的数组。这使它可以暴露于事件之外。希望这可以帮助需要这样做的其他人。
更多推荐
从.on事件内部将对象推到数组上
发布评论