我有下一个执行四个ajax函数的javascript函数,如果它们具有所有状态200
,则继续执行新调用。
我想知道如果这四个AJAX调用中的一个失败,jQuery.done中的一个也会被执行会发生什么?
$.when(
ajax1(),
ajax2(),
ajax3(),
ajax4())
.done(function(a1, a2, a3, a4) {
if(a1[2].status === 200 && a2[2].status === 200 &&
a3[2].status === 200 && a4[2].status === 200) {
$.ajax({
method: "POST",
url: "/whatever",
data: {
var1: a1[2].responseText,
var2: a2[2].responseText,
var3: a3[2].responseText,
var4: a4[2].responseText
},
success: function(){
alert("Success");
}
});
} else {
alert("Error");
}
}
});
谢谢。
答案 0 :(得分:2)
来自文档:
在多个Deferreds案例中,其中一个Deferreds被拒绝,jQuery.when()会立即触发其主Deferred的failCallbacks