タイトルの通りです。
Javascript
1var A=0 2$.when( 3testajax() 4 5).then(function(data){ 6 7}) 8var testajax=function(){ 9var def = $.Deferred(); 10 $.when( 11 funcA(A), 12 funcB(), 13 funcC() 14 ).done(function (a,b,c) { 15 var data=[a,b,c] 16 def.resolve(data); 17 }) 18 return def.promise(); 19} 20 21var funcA=function(num){ 22var def = $.Deferred(); 23 var url = "http://" + num + ".jp" 24 $.ajax({ // json読み込み開始 25 type: 'GET', 26 url: url, 27 }) 28 .then( 29 function (data) { 30 def.resolve(data); 31 }, 32 function (a, b, c) { 33 34 } 35 ); 36 return def.promise(); 37};
例えば上記のような場合、funcB,funCの通信は特に問題ないとして、funcAの通信が失敗した場合にURLに使用する数字Aを一つづつあげて再度通信を行い、成功した場合に最初のwhenに返すというようなことがしたい場合、どのようにするのがよいでしょうか?