【发布时间】:2011-09-09 16:47:23
【问题描述】:
所以在使用 jQuery deferreds 和 $.when 来并行加载许多对象。
$.when(
a.ajax(), b.ajax(), c.ajax()
).then(
//do something when all are complete
complete();
);
现在,b.ajax() 有时会失败,但我实际上并不关心。我只想等到所有调用都完成后再调用 complete()。
不幸的是,一旦b 失败,when() 就会拒绝,并且永远不会触发 then()callback。这是$.when() 的 AFAIK 预期行为,但在这种情况下不适合我。
我实际上想要一种表达方式:
$.when(
a.ajax(), b.ajax().fail(return success), c.ajax()
).then(...)
或者也许有不同的方式来使用when(),或更合适的构造?
【问题讨论】:
-
@Ates 我认为您删除的答案可以通过在您返回之前解决新的延迟对象来修复。
标签: jquery jquery-deferred promise