2017-06-29 2 views
-1

私はこのように動作するいくつかのコードを持っており、意図したとおりに動作します。複数のGetJSON呼び出しが機能しない?

<script> 
$.getJSON(url1, function (data1) { 
    $.getJSON(url2, function (data2) { 
     $.getJSON(url3, function (data3) { 

      //do stuff with data1, data2, data3 
     }); 
    });  
}); 
</script> 

私はこの

<script> 
$.when(
    $.getJSON(url1), 
    $.getJSON(url2), 
    $.getJSON(url3), 
).done(function(data1, data2, data3){ 
    //do stuff with data1, data2, data3 
}); 
</script> 

最初のコードは動作しますが、2番目にはないような呼び出しを合理化しようとしました。私は2番目のコードが動作するように見えることはできません。私は行方不明のものがありますか?

答えて

-1

応答データをあなたの第2の例で

$.when(
    $.getJSON('data.json').then(res => res), 
    $.getJSON('data2.json').then(res => res), 
    $.getJSON('data3.json').then(res => res) 
).done(function(data1, data2, data3) { 
    //do stuff with data1, data2, data3 
}) 

DEMO

-1

を返す各$.getJSONthen()を追加し、DATA1、DATA2、およびDATA3は応答を含む長さ3のリストでありますテキスト、ステータス、およびjqXHRオブジェクトを作成することができます。

$.when(
    $.getJSON(url1), 
    $.getJSON(url2), 
    $.getJSON(url3), 
).done(function(data1, data2, data3){ 
    //do stuff with data1[0], data2[0], data3[0] 
}); 

考慮すべきもう一つは、jQueryのあなたの戻り値の型はJSONことを期待していることであるので、あなたのサーバーの応答は、「コンテンツタイプ:アプリケーション/ JSONを」含まれていない場合、行われたコールバックは発生しません。

関連する問題