javascript - 延迟失败后是否有办法继续?

标签 javascript jquery ajax jquery-deferred

我正在处理未知数量的 ajax 请求。请求可能会失败并出现 404 错误。这会导致整个链失败。

在一次延迟失败后是否有办法继续?

var deferreds = [];
// fill deferreds with a number of ajax requests.
$.when.apply($, deferreds)
 .done(function(){
     // handle done
 }).fail(function(){
     // handle fail
     // would like to fix/resolve the failed deferred and continue with the rest
 });

最佳答案

您必须创建自己的延迟对象,等待其他延迟对象成功或失败。

var myDeferred = $.Deferred();
var origDeferred = $.ajax(...);
// if request is ok, i resolve my deferred
origDeferred.done(function() {
  myDeferred.resolve.apply(this, arguments);
});
// if request failed, i also resolve my deferred
origDeferred.fail(function() {
  myDeferred.resolve.apply(this, arguments);
});

在这种情况下,您的延期问题将始终得到解决。

关于javascript - 延迟失败后是否有办法继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075074/

相关文章:

javascript - 套接字 : Error: Lone surrogate U+D83D is not a scalar value

javascript - 远程调试 V8 引擎(不是 Node.js,而是 ClearScript)

javascript - 自动完成不隐藏

javascript - 代码适用于不同于单个 html 文件的堆栈片段

javascript - 简单的AJAX检索XML文件中的数据,在 ".responseXML"左右出错

c# - 无论如何在 ajax 调用中从 asp.net-mvc 中的服务器端异常返回原始文本而不是 html?

Javascript 表单验证

javascript - 在ionic框架中设置 subview 和路由

javascript - 动态生成元素上的 knockout 数据绑定(bind)

Javascript - JSON.parse : unexpected end of data - Error when using valid JSON. 我做错了什么?