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()
是毫无意义的。