すべての応答がすべての状態を見ることができる(競合状態がない)場合は、応答ごとに状態を格納する場所を個別に作成する必要があります。それから、各ajax呼び出しの完了時に、あなたはすでに完了しているものをチェックします。レスポンスを表示するのに十分な完成度があれば、それを処理し、残りのajaxレスポンスに必要な新しい状態を設定します。
var ajaxResponses = [null, null, null]; // response values for 3 ajax calls
var ajaxProcessed = [false, false, false]; // keep track of which values have been merged
var ajaxMergeResult = null; // what's been merged so far
その後、各AJAX呼び出しのための各補完関数は、配列の中にそれが応答データです入れ、その後に見えるdoMerge()
関数を呼び出すことができます:あなたのコードの構造を知らない、これを実行する最も簡単な方法は、単純な配列になりますこれまでに受け取った状態で、仕事を終わらせるか、仕事をするための十分な事前データがあるかどうかをチェックする。それはいくつかの仕事をしているが、すべての呼び出しがまだ行われていない場合は、最後に完了したときにdoMerge()
への次の呼び出しがこれまでに何が行われたかを知っているので、 。