【发布时间】:2013-02-13 04:21:11
【问题描述】:
我收到了一个动态异步请求(对于我使用 ajax 的 jsfiddle),无论成功或失败,我都需要等待,这意味着即使某些请求失败,我只需要知道所有进程都已完成。
//动态:在我的情况下,这是由 ajax 请求产生的,因此后续异步请求的数量是灵活的
所以我最初使用了这个代码:
$.when.apply($,deferreds).done(function() {
$("div").append("<p>All done!</p>");
}).fail(function(){
$("div").append("<p>Something failed!</p>");
});
但是在其中一个deferred失败的情况下,fail回调会立即被调用。我尝试将其更改为always(),但结果是:
Uncaught TypeError: Object # has no method 'always'
那么我怎样才能为此实现一个 always() 类型的解决方案呢?
我的原始来源:jQuery Deferred - waiting for multiple AJAX requests to finish
【问题讨论】:
-
我建议使用自定义延迟来计算成功和失败,然后在最后解决,尽管 .always 也应该在这里工作。
标签: jquery asynchronous jquery-deferred