gpt4 book ai didi

文件读取后 JavaScript 函数返回为空

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

这段代码

var fs = require("fs");
var freeApps = readFile();
console.log('4' + freeApps.toString());

function readFile () {
var content = '';
fs.readFile(__dirname + "/public/json/" + "test.json", function(err, data) {
if (err) {
console.error(err);
return '';
}
console.log('1' + data.toString());
content = data;
console.log('2' + content.toString());
});
console.log('3' + content.toString());
return content;
}

返回

3
4
1{"application":[{"name":"test","test":"name"}]}
2{"application":[{"name":"test","test":"name"}]}

其中字母是 test.json 内容。如何正确读取文件内容并在函数内处理它?我成功获取了 1 处的内容并转发到另一个函数,但不在该函数内,这是为什么?

最佳答案

如果您询问为什么您的 readFile 函数不返回 content(这很可能是因为此代码已关闭),那是因为 return 语句在文件被调用之前被调用。读完。这称为“异步”函数,因为它与代码的其余部分并行运行。

因此,您无法像此处那样重新分配内容。相反,您需要从回调(控制台日志 1 和 2 所在的位置)中调用函数和/或使用 Promises,这是一种用于处理异步行为的高级技术。

关于文件读取后 JavaScript 函数返回为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777698/

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