Mar*_*arl 4 jquery asynchronous jquery-deferred
我得到了一个动态异步请求(对于jsfiddle,我使用了ajax),无论成功与否,我都需要等待,这意味着即使某些请求失败,我也只需要知道所有进程都已完成.
//动态:在我的情况下,这是由ajax请求产生的,因此后续异步请求的数量是灵活的
所以我最初使用这段代码:
$.when.apply($,deferreds).done(function() {
$("div").append("<p>All done!</p>");
}).fail(function(){
$("div").append("<p>Something failed!</p>");
});
Run Code Online (Sandbox Code Playgroud)
但是在其中一个延迟失败的情况下,将立即调用失败回调.我尝试将其更改为always(),但结果是:
未捕获的TypeError:对象#没有方法'总是'
那么如何为此实现always()类型的解决方案呢?
我的原始资料来源:jQuery Deferred - 等待多个AJAX请求完成
如果你只是想等待一个列表$.Deferred结束而不管它们是什么,rejected或者resolved你在原始源代码中得到解决方案jQuery Deferred - 等待多个AJAX请求完成:
$.when.apply($, $.map(deferreds, function(d) {
var wrapDeferred = $.Deferred();
// you can add .done and .fail if you want to keep track of each results individualy
d.always(function() { wrapDeferred.resolve(); });
return wrapDeferred.promise();
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |