Javascript 正在尝试加载本地json文件,但无法在外部作用域中读取它
我试图读入一个大型的local.json文件,以便在我测试的代码中进行操作。下面的代码段将其加载并返回到我的控制台Javascript 正在尝试加载本地json文件,但无法在外部作用域中读取它,javascript,jquery,json,Javascript,Jquery,Json,我试图读入一个大型的local.json文件,以便在我测试的代码中进行操作。下面的代码段将其加载并返回到我的控制台 var dataset; $.getJSON("data.json", function(json) { dataset = json.rows; console.log(dataset); }); 但是,当我将console.log放在函数外部时,如下所示,我在控制台中得到未定义的返回,并且在尝试使用dataset变量时在其他地方收到错误 var dataset; $.
var dataset;
$.getJSON("data.json", function(json) {
dataset = json.rows;
console.log(dataset);
});
但是,当我将console.log放在函数外部时,如下所示,我在控制台中得到未定义的返回,并且在尝试使用dataset变量时在其他地方收到错误
var dataset;
$.getJSON("data.json", function(json) {
dataset = json.rows;
});
console.log(dataset);
JavaScript新手,但我认为如果外部变量在函数外部声明,您可以更改它?jquery或这个特定函数是否有我遗漏的地方?目标是将json的行加载到JavaScript对象中进行操作,而不限于任何范围
谢谢 如果外部变量是在函数外部声明的,则可以更改外部变量 但是jQuery函数getJSON默认为异步函数,这意味着当console.logdataset;数据集变量仍未定义 如果要切换console.logdataset;设置IntervalConsole.logdataset,5000;。 它可能会工作,但现在它依赖于这样一个假设,即它所花费的时间总是小于或等于5秒 通过将全局ajax配置设置为禁用异步,可以解决此问题 此代码应按照您的预期工作:
// Switch to synchronous functions.
$.ajaxSetup({ async: false });
var dataset;
$.getJSON("data.json", function(json) {
dataset = json.rows;
});
console.log(dataset);
谢谢你,看起来是这样的!