动画中的承诺
Promises in animations
我收到以下查询。考虑下一行代码:
case A:
$('#box').promise().done(function(){alert('Okay');});
在上述情况下,警报消息将立即显示,因为 $('#box').promise()
将 return 一个 已解决的承诺对象 并且完成回调将触发立即地。现在,如果我们将上面的代码更改为:
case B:
$('#box').hide(5000);
$('#box').promise().done(function(){alert('Okay');});
完成回调将在 5 秒后触发。在那种情况下,如果 B 不同于 $('#box' ) 在案例 A 中并且知道 .hide() 方法已经应用于它以正确等待触发回调。一定有一些内在的jQuery程序...
希望通俗易懂
There must be some inner jQuery procedure...
是的,有。 animation queue is attached to the DOM element using .data()
, and will be retrieved by the call to .promise()
默认等待动画队列。你的情况A,刚好是空的,所以promise马上就实现了。
我收到以下查询。考虑下一行代码:
case A:
$('#box').promise().done(function(){alert('Okay');});
在上述情况下,警报消息将立即显示,因为 $('#box').promise()
将 return 一个 已解决的承诺对象 并且完成回调将触发立即地。现在,如果我们将上面的代码更改为:
case B:
$('#box').hide(5000);
$('#box').promise().done(function(){alert('Okay');});
完成回调将在 5 秒后触发。在那种情况下,如果 B 不同于 $('#box' ) 在案例 A 中并且知道 .hide() 方法已经应用于它以正确等待触发回调。一定有一些内在的jQuery程序...
希望通俗易懂
There must be some inner jQuery procedure...
是的,有。 animation queue is attached to the DOM element using .data()
, and will be retrieved by the call to .promise()
默认等待动画队列。你的情况A,刚好是空的,所以promise马上就实现了。