我正在处理未知数量的 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/