动画中的承诺

时间:2016-02-03 10:03:03

标签: jquery jquery-animate promise

它来找我以下查询。考虑下一行代码:

case A: 
  $('#box').promise().done(function(){alert('Okay');});

在上述情况下,警报消息将立即显示,因为$('#box').promise()将返回已解决的承诺对象,并且完成的回调将立即触发。现在,如果我们将上面的代码更改为:

case B:   
  $('#box').hide(5000);
  $('#box').promise().done(function(){alert('Okay');});

完成回调将在5秒后触发。在这种情况下,我无法找到 jQuery识别的第二行中的$('#box'),如果B与$(' #box& #39;)在情况A中并且知道已经在其上应用.hide()方法以正确地等待触发回调。必须有一些内部jQuery程序...

希望可以理解。

1 个答案:

答案 0 :(得分:2)

  

必须有一些内部jQuery程序......

是的,有。 animation queue使用.data()附加到DOM元素,并将通过调用.promise()来检索,默认等待动画队列。在你的案例A中,它恰好是空的,以便立即履行承诺。