我有两个ajax调用,在使用jQuery.when()
完成这两个调用之后执行一些回调$.when(loadDataA(), loadDataB()).done(function(dataA, dataB) {
console.log(xhr.status); // How do I get the xhr.status?
}
我想知道第一个电话的xhr.status
。使用正常的.done(),您可以执行以下操作:
.done(function(data, statusText, xhr) {
console.log(xhr.status);
}
但我无法在我的案例中发挥作用。
使用jQuery.when
时如何获取?
答案 0 :(得分:1)
来自$.when()
的文档:
如果Deferred被解析为没有值,则相应的doneCallback参数将是未定义的。如果Deferred解析为单个值,则相应的参数将保存该值。在Deferred解析为多个值的情况下,相应的参数将是这些值的数组。例如:
var d1 = $.Deferred();
var d2 = $.Deferred();
var d3 = $.Deferred();
$.when( d1, d2, d3 ).done(function ( v1, v2, v3 ) {
console.log( v1 ); // v1 is undefined
console.log( v2 ); // v2 is "abc"
console.log( v3 ); // v3 is an array [ 1, 2, 3, 4, 5 ]
});
d1.resolve();
d2.resolve( "abc" );
d3.resolve( 1, 2, 3, 4, 5 );
在您的情况下,dataA
将是一个包含三个元素的数组:
dataA[0] -> data
dataA[1] -> statusText
dataA[2] -> xhr
有了......
使用jQuery时如何获取它?什么时候?
dataA[2].status