';管道';Javascript中的函数未按预期从CSV填充
我以前有过这段代码,但做了一些更改,我不确定我做了什么来打破它。.csv文件的路径正确,代码似乎正确,但函数调用后数组';管道';Javascript中的函数未按预期从CSV填充,javascript,node.js,csv,parsing,Javascript,Node.js,Csv,Parsing,我以前有过这段代码,但做了一些更改,我不确定我做了什么来打破它。.csv文件的路径正确,代码似乎正确,但函数调用后数组raw_data为空 require('./trip.js'); const parser = require('csv-parser'); const fs = require('fs'); let raw_data = []; function readFile() { fs.createReadStream('./trips.csv') .pip
raw_data
为空
require('./trip.js');
const parser = require('csv-parser');
const fs = require('fs');
let raw_data = [];
function readFile() {
fs.createReadStream('./trips.csv')
.pipe(parser())
.on('data', (data) => raw_data.push(data))
.on('end', () => console.log('CSV has been piped into an array'));
}
const trips = async () => {
await readFile();
console.log(raw_data.length)
};
我希望原始数据数组包含9999项。它包含零。我也没有让console.log语句在“end”上执行。readFile必须像这样返回承诺
require('./trip.js');
const parser = require('csv-parser');
const fs = require('fs');
let raw_data = [];
function readFile() {
return new Promise(resolve =>
fs.createReadStream('./trips.csv')
.pipe(parser())
.on('data', (data) => raw_data.push(data))
.on('end', resolve)
);
}
const trips = async () => {
await readFile();
console.log(raw_data.length)
};
你只能等待承诺。