jQuery._Deferred提供哪些接口
2011/1/20 17:16:16

  1. done:function(fn1, fn2, ...)的形式,用于把函数添加到队列中。
  2. fire:function(context, args)的形式,使用context指定this对象,args指定参数,调用队列中所有函数。fire被调用后,_Deferred会进入 isResolved状态,未来对done的调用不会再保存函数,而是直接调用函数。
  3. resolve:相当于调用fire(this, arguments),一个简化的方法。
  4. isResolved:用来判断_Deferred是否在isResolved状态,具体参考前面的fire函数的解释。
  5. cancel:取消掉整个队列,这样不管未来是不是fire,队列中的函数都不会再被调用。
  说明白了jQuery._Deferred,再来看看jQuery.Deferred。这个东西其实就是2个_Deferred组成的,第一个称为 deferred,用于保管“正常”状态下的函数;第二个称为failDeferred,用于保管“出错”状态下的函数。同时 jQuery.Deferred提供了一些新的接口:
  1.then:function(done, fail)的形式,把done添加进deferred,把fail添加进failedDeferred。
  2. fail:相当于failDeferred的done函数。
  3. fireReject:相当于failDeferred的fire函数。
  4. reject:相当于failDeferred的resolve函数。
  5. isRejected:相当于failDeferred的isResolved函数。
  同时jQuery.Deferred取消了cancel函数。

返回列表
返回首页