Javascript jQuery.when:如果一个函数失败怎么办?
我有下一个javascript函数,它执行四个ajax函数,之后,如果它们的状态都是Javascript jQuery.when:如果一个函数失败怎么办?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下一个javascript函数,它执行四个ajax函数,之后,如果它们的状态都是200则继续执行一个新调用 我想知道如果这四个AJAX调用中的一个失败了,jQuery.done中的调用也会被执行,会发生什么 $.when( ajax1(), ajax2(), ajax3(), ajax4()) .done(function(a1, a2, a3, a4) { if(a1[2].status === 200 && a2[2].status
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");
}
}
});
谢谢。来自文档: 在多次延迟的情况下,其中一个延迟被拒绝,jQuery.when()会立即为其主延迟发出故障回调
真遗憾,我没有在文件上看到这一点。谢谢你,罗瑞!没问题,很乐意帮忙。如果我没弄错你的问题;您可以将错误的url传递给其中一个ajax调用并查看结果。我认为最好在有机会的时候自己查看结果。如果ajax函数失败并且没有返回200状态代码,那么每个ajax函数都应该失败,并且您的
警报
代码应该位于.fail()
函数中。