所有jQuery延迟/承诺可能的用途

时间:2013-01-19 18:18:50

标签: jquery jquery-deferred promise

我一直在玩$.Deferredpromise(),并注意到几乎所有jQuery方法都有promise方法,所以我想知道其他地方还能保证会被使用。到目前为止,我知道它可用于:

  • 动画(animatefadeInfadeOutfadeTohideshow等)
  • AJAX($.ajax$.post$.get$.getJSON等)
  • setTimeout函数(在其中一个函数中手动调用resolve
  • 像实现一样排队(按顺序执行命令,可以在运行中插入其他回调)

1 个答案:

答案 0 :(得分:0)

我查看了源代码。看起来你唯一错过的是$.ready.promise()。这似乎将JQuery的主要就绪事件视为一种承诺,所以从一开始你就可以写:

$.ready.promise()
 .then(function() { return $.ajax({ ... }); })
 .then(function(data)
     {
         // do something with data
     })
 .fail(function()
     {
         // handle errors
     });