gpt4 book ai didi

file - 将json数据读取到Node.js中的全局变量中

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:01 25 4
gpt4 key购买 nike

我正在尝试将 json 结构读入全局变量,但似乎无法使其工作。从文件中读取数据后,我将使用回调进行处理(该部分正在工作)。

我想填充“source_files”。

var fs = require('fs');
var source_files = [];

function readConfig(callback) {
fs.readFile('data.json', 'utf-8', function (err, content) {
if (err) return callback(err);
callback(content);
});
}

readConfig(function(config) {
var settings = JSON.parse(config);
var inputs = settings.inputs;

for (var id=0; id < inputs.length; id++) {
source_files.push(inputs[id].replace('./',''));
}
});

console.log(source_files);

最佳答案

请记住readFile is asynchronous 。最后一行 console.log(source_files) 将在调用 readFile 回调之前运行,因此在 readConfig 之前运行 回调被调用。您需要将其移至 readConfig 回调中。

按原样使用您的代码,会发生以下情况:

  1. 它创建空白数组。
  2. 它调用readConfig
  3. readConfig 调用 readFile
  4. readFile 启动异步读取操作并返回。
  5. readConfig 返回。
  6. 您记录的 source_files 是空的。
  7. 稍后,readFile 操作完成并调用回调。它调用 readConfig 回调。
  8. readConfig 回调会填充 source_files,但这有点像此时一棵树倒在森林中,因为没有任何人观察到这一点。 :-)

关于file - 将json数据读取到Node.js中的全局变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375719/

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