jQuery.when:获取xhr状态代码

jQuery.when:获取xhr状态代码,jquery,ajax,.when,Jquery,Ajax,.when,我有两个ajax调用,它们在使用 我想知道第一次通话的xhr.status。使用normal.done()可以执行以下操作: .done(function(data, statusText, xhr) { console.log(xhr.status); } 但我不能让它在我的情况下工作 使用jQuery.when时如何获取它?来自以下文档: 如果在没有值的情况下解析延迟,则相应的doneCallback参数将未定义。如果延迟解析为单个值,则相应的参数将保留该值。在延迟解析为多个值的情况下

我有两个ajax调用,它们在使用

我想知道第一次通话的
xhr.status
。使用normal.done()可以执行以下操作:

.done(function(data, statusText, xhr) {
  console.log(xhr.status);
}
但我不能让它在我的情况下工作


使用jQuery.when时如何获取它?

来自以下文档:

如果在没有值的情况下解析延迟,则相应的doneCallback参数将未定义。如果延迟解析为单个值,则相应的参数将保留该值。在延迟解析为多个值的情况下,相应的参数将是这些值的数组。例如:

在您的情况下,
dataA
将是一个包含三个元素的数组:

dataA[0] -> data
dataA[1] -> statusText
dataA[2] -> xhr
用这个

使用jQuery.when时如何获取它


dataA[2]。状态

如果您有多个xhr请求,您将需要有多个statsI,我认为是这样。你有一个如何实现的例子吗?如果没有内置的功能(没有找到),我会尝试让loadDataA和B返回一个包含xhr状态和数据的对象。然后您可以从dataA和dataB检索它。。只是一个idea
dataA
是一个包含所有传递参数的数组
dataA[2]
XMLHttpRequest
object()@Andreas yours就是答案。谢谢
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[0] -> data
dataA[1] -> statusText
dataA[2] -> xhr