我有一种情况,我需要进行几次 getJSON 调用,一旦返回所有数据,就调用另一个函数,如下所示(例如代码简化):
var data = {};
for (var i in a) {
$.getJSON(base_url+i, function(d) {
data[i] = d;
});
}
do_something(data);
显然这不起作用,因为我在 getJSON 调用返回任何数据之前调用 do_something。
我目前解决此问题的方法是同步进行调用,如下所示:
var data = {};
$.ajaxSetup({'async':false});
for (var i in funcs) {
$.getJSON(base_url+i, function(d) {
data[i] = d;
});
}
$.ajaxSetup({'async':true});
do_something(data);
我的问题是,有没有更好的方法来做到这一点,或者我最好像上面那样同步调用?