GETメソッドを使用した$.ajax、promiseオブジェクトを使用した場合はどうでしょうか。
function showResults(name) {
var deferred = $.Deferred, requests = [];
requests.push($.ajax({url:"/path/to/uri/?name=" + name, type: "GET", async: false}).done(function(d) {
//alert or process the results as you wish
}));
$.when.apply(undefined, requests).then(function(d) { console.log(d); /*var d is a promised late return */ deferred.resolve(); });
return deferred.promise();
}
彼が返したpromiseオブジェクトは$.when(showResults('benjamin')).done(function() { });
、ポストの変更(チャート/グラフの設定など)にも使用できます。完全に再利用可能。この関数を$.deferredリクエストのループに入れることもできます。
function updateResults() {
var deferred = $.Deferred, requests = [];
requests.push($.ajax(url:"/path/to/names/?nameArr=" + jsonArrOfNames, type: "GET", async: false}).done(function(res) { requests.push(showResults(res[0]));}) );
$.when.apply($, requests).then(function(d) { console.log(d); /*var d is a promised late return */ deferred.resolve(); });
return deferred.promise();
}