次の問題-ajax関数を何度も呼び出さなければならず、すべての関数が完了したら、すべての結果を配列に入れます。私はこれを思いついた:
function doAjax(xx){
var xdata = {json: $.toJSON({name: xx}),
delay: 1};
return $.ajax({
url:"/echo/json/",
data:xdata,
type:"POST"
});
}
var carr = [doAjax('a'),doAjax('b'),doAjax('c'),doAjax('d')]
var result = [];
$.when( carr )
.done(function(data){
console.log(data);
$.each(data, function(ix,val){
console.log(val.name);
});
});
ここでフィドル:http://jsfiddle.net/Fkd9n/
すべて正常に機能しているようです。「console.log(data)」は応答テキストを使用してオブジェクトを書き出しますが、「console.log(val.name)」は常に「未定義」です。では、すべての呼び出しが完了したら、すべての結果を1つの配列に結合するにはどうすればよいでしょうか。
ありがとうございました!