为什么jQuery的done
会在var data = {
json: JSON.stringify({
text: 'some text',
array: [1, 2, 'three'],
object: {
par1: 'another text',
par2: [3, 2, 'one'],
par3: {}
}
}),
delay: 3
};
var firstRequest = $.ajax({
url:'/echo/json/',
data: data,
type: 'POST'
});
var secondRequest = $.ajax({
url:'/echo/json/',
data: data,
type: 'POST'
});
$.when.apply($, [firstRequest, secondRequest]).done(function(data1, data2){
console.log(data1); // returns array, I expect a response object
console.log(data2);
});
回调中返回promises,而不是相应的响应数据?
[responseobject, textstatus, jqxhr]
documentation和SO上的各种答案,如this,都意味着我应该获得实际的响应对象,而不是utf8_unicode_ci
的数组。
答案 0 :(得分:4)
您正在获得正确的结构,但data1
和data2
参数不是实际数据本身。它实际上是一个包含三个项目data, statusText, jqXHR
的数组,因此您的数据实际上位于data1[0]
中,并会退出:
Object {text: "some text", array: Array[3], object: Object}
文档有点不清楚,但在示例部分中显示了它的工作原理。