jQuery 多个 Deferred - 如果一个被拒绝,如何处理其余的

jQuery multiple Deferreds - how to process the rest if one is rejected

我有一个 $.when jquery 语句,它在执行下一组功能之前正在等待对 return 的 3 ajax 请求。我遇到的问题是,如果其中一个请求 return 出现错误 500,则系统不会处理到下一组函数,此时系统会冻结。

有没有办法让 ajax 调用在 $.when 语句中跳过 500 错误。

所有 ajax 函数都在 $.when 之外定义为单独的函数,并且所有函数都在内部具有成功和错误处理函数。

代码如下:

$.when(
    ajaxCall1(),
    ajaxCall2(),
    ajaxCall3()
).done(function(){
    // functions that follow
});

因此,如果任何 ajax 调用失败,则完成的过程未完成。我认为即使 ajax 调用失败,它仍然会 return 错误处理。

收到的错误 500 是由于来自 API 的权限块而强制收到的。

done 仅在 when 中的函数不 returns 错误时调用。也许您可以使用 then 而不是 done 并为 doneFilterfailFilter.

触发相同的函数