いくつかの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);
私の質問は、これを行うためのより良い方法はありますか、それとも上記のように同期して呼び出しを行うのが最善ですか?