gpt4 book ai didi

javascript - 访问并返回内部函数的数据

转载 作者:行者123 更新时间:2023-12-01 02:19:08 25 4
gpt4 key购买 nike

读取 CSV 文件时,无法返回读取的数据。 console.log(data)包含我需要的内容,但它没有返回 data (例如,调用 readCSV 函数时):

export default function readCSV(filename) {
let parser = parse({columns: true, trim: true, skip_empty_lines: true}, function(err, data){
console.log(data);
return data;
});

fs.createReadStream(__dirname + '/' + filename).pipe(parser);
return parser;
}

这给了我解析器实例而不是数据 - 尝试了它的许多变体。 如何返回 data 我在 JS 中缺少什么概念?我正在使用 node-csv-parse 库。

最佳答案

我猜这是因为 parse() 是一个异步函数。您要么需要另一个回调来检索值,要么使用使用 Promise 的新流行方法:

export default function readCSV(filename) {
return new Promise((resolve, reject) => {
let parser = parse({columns: true, trim: true, skip_empty_lines: true}, function(err, data){
if (err)
reject();
else
resolve(data);
});
fs.createReadStream(__dirname + '/' + filename).pipe(parser);
})
}

然后您将使用这样的:

readCSV("somefile").then((data) => {
console.log(data)
})
.catch(()=>{
console.log("Something went wrong")
})

或者使用异步函数:

async function doThing() {
let data = await readCSV("somefile");
console.log(data)
}

关于javascript - 访问并返回内部函数的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com