Javascript中的“管道”功能未按预期从CSV填充

我早些时候可以使用此代码,但是进行了一些更改,但不确定如何破坏它。 .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)
};

我希望raw_data数组包含9999个项目。它包含零。我也没有在console.log语句上执行“结束”。

qkjqkj000 回答:Javascript中的“管道”功能未按预期从CSV填充

readFile必须这样返回Promise

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)
};
本文链接:https://www.f2er.com/3116446.html

大家都在问