根据$.when 的 jQuery 文档,它将返回一个新的 deferred(实际上是一个 promise),在所有 deferred(传递给 $.when)没有错误地解决的情况下,它会使用传递的 deferreds 的结果列表来解析.
所以你会期望$.when($.Deferred().resolve(1), $.Deferred().resolve(2))
返回一个可以用列表 [1, 2] 解析的延迟。但情况似乎并非如此。这是一个 jsfiddle,其中整体 $.when 结果是第一个延迟给 $.when 的结果。
我想我一定是误解或做错了什么,但我看不出是什么。谢谢你的帮助!