我正在处理数量未知的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); });
在这种情况下,您的延期将始终得到解决。