以下问题 - 我必须多次调用 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)”总是“未定义”。那么,一旦完成所有调用,如何将所有结果合并到一个数组中呢?
谢谢!