';管道';Javascript中的函数未按预期从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

我以前有过这段代码,但做了一些更改,我不确定我做了什么来打破它。.csv文件的路径正确,代码似乎正确,但函数调用后数组
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)
};

你只能等待承诺。