0
我的程序的结构如下:如何从for循环中的ajax请求中获取数据?
var output = []; //<---- where I want to store the data
function getData(){
for(...){
$.getJSON("...", function(data){
if(...){
output.push(data[...]);
}else{
$.getJSON("...", function(data2){
output.push(data2[...]);
});
}
});
}
}
这不工作,我的理解是Ajax调用的异步性质所致。调用函数后我无法访问数据。做输出[0]返回未定义。
如果你可以链接你的完整代码+你的数据是什么样的。为什么它嵌套在“for循环”中?这通常不是一个好习惯。 –
在这种情况下,如果您确实需要在循环中执行调用,则必须使用承诺。 – Legends
“执行输出[0]返回未定义。”它会在'getJSON'函数返回之前,是的。您需要访问回调中的数据,或者从回调中返回一个承诺,并在尝试访问数据之前等待它解析。 –