Jquery 美元什么时候可以为一个美元延期付款?

Jquery 美元什么时候可以为一个美元延期付款?,jquery,jquery-deferred,Jquery,Jquery Deferred,我试图理解$。当时,我可以看出,当您希望在继续之前等待多次延迟时,它会很有用。然而,我不确定我是否理解使用$的用例是什么。当使用一个延迟的时。举例说明: var deferred = $.Deferred(); // Is this ever useful? $.when(deferred).then(...) // Or can I always do this? deferred.then(...) 您可以始终执行。然后执行,。然后执行只不过是您需要同时使用。完成和的快捷方式。失败来自

我试图理解
$。当
时,我可以看出,当您希望在继续之前等待多次延迟时,它会很有用。然而,我不确定我是否理解使用
$的用例是什么。当使用一个延迟的
时。举例说明:

var deferred = $.Deferred();

// Is this ever useful?
$.when(deferred).then(...)

// Or can I always do this?
deferred.then(...)

您可以始终执行
。然后执行
。然后执行
只不过是您需要同时使用
。完成
的快捷方式。失败

来自文档:

如果将单个延迟对象传递给
jQuery.when
,则该方法将返回其承诺对象(延迟方法的子集)

因此,
$。当(延迟)。那么(…)
延迟。承诺()。那么(…)
相同

promise对象只是延迟对象的有限接口。它允许添加回调,但不允许更改延迟的状态(解析、拒绝)

因此,总之,在使用
$时
和直接在延迟对象上调用
,然后
之间基本没有区别


我认为在
时将单个延迟对象显式传递给
$是没有意义的,因为您没有任何优势。但是,在某些情况下,您可能有数量未知的延迟对象,这意味着它也可能只有一个。

我想您误解了我的问题。我在问是否用$包装一个延迟的,什么时候会给延迟的添加任何附加功能。它比直接在单个原始延迟对象上调用方法更有用吗?
$。when
的目的是创建一个新的延迟对象,当所有传入的延迟都已解决时,该对象将解决,或者当其中任何一个延迟失败时,该对象将失败。如果只传入一个延迟对象,则只返回相同的延迟对象。您可以从api中找到所有这些信息。我已经阅读了该页面20多次,并且了解到promise对象正在返回:)我的问题是,这对1 deferred什么时候有用?不管您将什么传递到$。什么时候,您将得到一个promise对象返回。这在API的第一段中。如果您有一个延迟对象,而您需要一个promise对象,请调用.promise()。当您可以自己对延迟对象调用
.promise()
时,使用
.when()
是毫无意义的。