gpt4 book ai didi

javascript - 在回调方法之外访问 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 05:48:32 24 4
gpt4 key购买 nike

我正在编写一个函数,它将连接到服务器并检索一个 JSON 对象。它将对其进行处理并返回一个普通数组,其中包含要加载到某些 HTML 标记中的值。我知道可以使用其他方式完成,但我使用的是以下代码。

var names = new Array();
function fetch (key) {
var url = 'server/server.php?key=' + key
$.getJSON(url , sett = function(data) {
$.each(data, function(key, value){
names[key] = value['name'];
});
console.log(names);//works and print the values
});
console.log(names);//doesn't work, shows and empty array
}

我想返回一个数组,该数组将保存由 jQuery 过滤的每个值,因此该函数可以作为任何大型应用程序的标准函数。如何实现?

最佳答案

如评论中所述,您的 ajax 请求将花费一些时间(很短的时间,但仍然是时间),因此位于 ajax 调用之外的 console.log 将在 ajax 调用之前执行已完成,显示原始的空数组。

您可以将回调参数添加到您的fetch 函数...

所以...

function fetch (key, callback) {
var url = 'server/server.php?key=' + key
$.getJSON(url , sett = function(data) {
$.each(data, function(key, value){
names[key] = value['name'];
});
// call callback inside the getJSON callback
callback && callback.call(this, names);
});
}

现在,您的回调函数会将您的 names 数组作为第一个参数。

fetch(some_key, function(names){
console.log(names); //should work!
});

关于javascript - 在回调方法之外访问 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313247/

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