複数の AJAX リクエストを呼び出さなければならないという問題があり、すべてが完了したときに一度だけ呼び出されるコールバックを書きたいと考えています。複数の ajax 呼び出しを使用できるため、ここで発生したように、前のコールバックのコールバックでこれらの Ajax 呼び出しを連鎖させたくない場合があります。
だから私はこのようなことを試しました -
var requestCompletedArray = [];
/* assuming i have `n` ajax calls to make */
for(var i = 0; i < n; i++) {
ajaxCall(/* some url, data etc */, callback);
}
/* my callback definition */
function callback(data) {
if(requestCompletedArray.length < n-1) {
requestCompletedArray.push(data.status);
return;
} else if(requestCompletedArray.length === n-1) {
//do something, all requests are completed
} else {
return;
}
}
私はこの解決策について気分が良くありません。皆さんはどう思いますか?それが良い解決策ではない場合、この問題を解決するための良い提案をいただけますか。