我正在尝试将 csv 文件的标头放入数组中,并尝试使用 csv-parser 来执行此操作。有两件事我在这里想不通:
1)为什么代码最后一行的console.log会先于其他任何东西触发?这也意味着我尝试记录的变量值未定义。
2) 为什么我的 getFields 函数没有返回新填充的标题数组?我可以 console.log 函数内部的所有新元素的结果数组,但我实际上不能返回充满元素的数组——它一直返回一个空数组。
这是代码:
const express = require('express')
const app = express()
const port = 3000
const csv = require('csv-parser')
const fs = require('fs')
function getFields (filePath) {
let results = [];
fs.createReadStream(filePath)
.pipe(csv())
.on('headers', (headers) => {
let values = Object.values(headers);
values.forEach(function(element) {
results.push(element);
});
console.log('I am actually getting results here: ', results);
return results;
});
}
const omg = getFields(thisIsAFilePath)
console.log('This console.log is firing before anything else: ', omg)