2016-09-14 5 views
0

$.when.apply($, deferreds)から未知数の回答にアクセスするにはどうすればよいですか?

うまくいけば、以下の試みは、私が達成しようとしているものを示しています

var ajax1 = someAjaxFunction(); 

deferreds = [ajax1, ajax2, ... ajaxN]; 
responses = [ajax1Response, ajax2Response, ... ajaxNResponse]; 

$.when.apply($, deferreds).then(deferredsAllDone.apply(responses)); 

私はdeferredsAllDone()で応答にアクセスできるようにする必要があり、私もその呼び出しから来た応答を区別できるようにする必要があります。私はそれをどのように達成するのですか?

答えて

2

おそらくこれが役立ちます。あなたは、各引数は$.when.apply().done(function() // or thenの引数は、元のDeferred配列と同じ順番になります[responseData, statusText, xhrObj]

var deferreds =[]; 
    for (var i=0; i<6; i++){ 
    deferreds.push($.get('data.json')) 
    } 

    $.when.apply(null, deferreds).done(function(){ 
    console.log(arguments) 
    for(var i=0; i<arguments.length; i++){ 
     var arg = arguments[i] 
     var responseData = arg[0], 
      statusText = arg[1], 
      xhrObj =arg[2]; 
    } 
    }); 

の配列である引数を反復処理する必要があります。

私はjQueryの3が 約束のA +に沿って、より多くのことと受け入れて、配列を返すように $.whenを合理化しているが、私は深くそれに

DEMO

+0

理にかなってを見ていないと信じて、 説明ありがとう。 – fildred13

関連する問題