私は少し前にjQueryでpromiseを使用しましたが、このシナリオに適用するのに問題があります。これを実現するには、$。when()メソッドと$ .done()メソッドを使用することを好みます。
私が理解していることから、リクエストをログに記録する$ .Deferredオブジェクトを作成する必要があり、それらのリクエストが終了したら、コールバックを起動します。以下の私のコードでは、コールバックはajaxリクエストの前に発生し、後では発生しません-たぶん私は少し眠る必要があります
コードが不完全であることはわかっていますが、forループを追加してコードを適用するのに苦労しています。
http://jsfiddle.net/whiteb0x/MBZEu/
var list = ['obj1', 'obj2', 'obj3', 'obj4', 'obj5'];
var callback = function() {
alert("done");
};
var requests = [];
var ajaxFunction = function(obj, successCallback, errorCallback) {
for(i = 0; i < list.length; i++) {
$.ajax({
url: 'url',
success: function() {
requests.push(this);
}
});
}
};
$.when($.ajax(), ajaxFunction).then(function(results){callback()});