gpt4 book ai didi

JavaScript从json获取数据到全局变量

转载 作者:可可西里 更新时间:2023-11-01 01:39:27 26 4
gpt4 key购买 nike

function test(){
$.getJSON( "notebook-json-data.php", function( data ) {
var myData = data;
});
}

在我的函数中,我得到了 json 对象,但我想从其函数范围之外访问 myData 变量。

我试过在函数外设置 var myData 但没有成功.. :(

我不熟悉 JSON,我需要任何解析吗?

如何将这个变量设置为全局变量??

请帮忙...

最佳答案

不要尝试将 myData 设置为全局变量 - 它不会起作用,因为 getJSON 是异步的。要么使用 promise :

function test() {
return $.getJSON('notebook-json-data.php');
}

$.when(test()).then(function (data) {
console.log(data);
});

或者回调:

function test(callback) {
$.getJSON('notebook-json-data.php', function (data) {
callback(data);
});
}

test(function (data) {
console.log(data);
});

编辑

由于您想在代码的其他区域使用数据,请使用闭包创建一个环境,使您的变量不会泄漏到全局空间中。例如,回调:

(function () {

var myData;

function test(callback) {
$.getJSON('notebook-json-data.php', function (data) {
callback(data);
});
}

test(function (data) {
myData = data;
autoPopulate('field', 'id');
});

function autoPopulate(field, id) {
console.log(myData);
}

});

myData 被缓存为全局变量特定于该闭包。请注意,只有在回调完成后,其他函数才能使用该变量。

关于JavaScript从json获取数据到全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909006/

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