2016-10-22 1 views
1

「すべての」Ajaxリクエストがこの質問から実行された場合、私は応答を得ることができます。私は、各アヤックスが行われたときに「すべての」応答を取得するための質問を見つけることはできませんがすべてのjQuery Ajaxリクエストが完了すると応答を返しますか?

Wait until all jQuery Ajax requests are done?

どうすればいいですか?

すべての応答が完了するまで待機する例ですが、各Ajaxが完了すると応答を取得したいと考えています。

function translate(...){ 
    return $.ajax({ 
     // settings... 
    }); 
}); 

var requests = []; 
translatable_fields.each(function(){ 
    requests.push(translate(...)); 
}); 

$.when.apply($, requests).done(function(schemas) { 
    console.log("All requests complete"); 
    // do something... 
}); 

答えて

0

応答がdoneのためにコールバックに渡されます。各AJAX呼び出しは独自のパラメータを取得し、各パラメータは応答の3つの部分、つまり応答テキスト、ステータス、およびAJAX呼び出しに関連付けられたjqXHRオブジェクトの配列になります。 Documentation for $.when

あなたはすべてを一度に arguments object使用して応答テキストを取得することができます

$.when.apply($, requests).done(function() { 
    var responses = $.map(arguments, function(arr) { return arr[0] }); 
}); 
関連する問題