我有一些 jQuery ajax 请求,它们与 .when 调用并行运行。我想忽略那些在超时后没有返回的。
这是它的一个简单形式:
var ajax1 = $.ajax({url: url1,
timeout: 1000,
success: function() {
console.log("1 done");
}
});
var ajax2 = $.ajax({url: url2,
timeout: 1000,
success: function() {
console.log("2 done");
}
});
$.when(ajax1, ajax2).done(function() {
console.log("all done");
});
在上面的例子中,如果 url1 在 1 秒内没有响应,我仍然想达到“全部完成”。我知道如何在每个 ajax 调用中捕获超时错误,但我不知道如何将错误标记为忽略。
最佳答案
你不能只使用.always()
吗?如果您想要以所有方式(成功、错误、超时等)完成 ajax 调用,而不是仅以成功方式完成:
$.when(ajax1, ajax2).always(function() {
console.log("all done");
});
传递给 .always()
回调的参数可用于确定 ajax 调用是否成功或错误类型。
关于javascript - 忽略 jQuery.when 期间的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024153/