可以说我有以下代码:
$.when(func1(),funct2(),func3())
.done(...)
.fail(...);
我想知道这些函数是否会立即被调用,如果 jQuery 会在它们被解析时连续调用它们。根据文档,它们似乎将异步运行:
在将多个 Deferred 对象传递给 jQuery.when 的情况下,该方法从一个新的“主” Deferred 对象返回 Promise,该对象跟踪它已传递的所有 Deferred 的聚合状态。
...
在多个 Deferred 的情况下,其中一个 Deferred 被拒绝,jQuery.when 立即为其主 Deferred 触发 failCallbacks。请注意,此时某些 Deferreds 可能仍未解决。
我读到的方式是 func1、func2 和 func3 都会立即被触发,并且返回的主延迟对象将处理调用正确的回调函数,但是每当检测到第一个拒绝()时,失败()回调将立即开火。我对此的理解是正确的还是有什么我遗漏的?