0

複数の 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;
    }
}

私はこの解決策について気分が良くありません。皆さんはどう思いますか?それが良い解決策ではない場合、この問題を解決するための良い提案をいただけますか。

4

1 に答える 1