jQuery.when:如果一个函数失败,会发生什么

jQuery.when: What happens if one function fails?

本文关键字:失败 函数 什么 一个 when 如果 jQuery      更新时间:2023-09-26

我有下一个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 && 
       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()会立即为其主延迟触发故障回调

http://api.jquery.com/jQuery.when/