jquery 中的deferred和promise 实践

2016-07-29  本文已影响0人  c40f8df9338d

介绍jquery 的deferred由来

它是jquery1.5版本的新出的功能,为了解决异步回调的问题。大概2011年就出来了。现在es6规范中的promise,基本和deferred对象是一个概念。

定义deferred对象

   var deferred1 = $.Deferred();//这样就创建了一个deferred对象
   deferred.done(sucessfn);     //定义d1成功后的回调函数
   deferred.fail(failfn);              //定义d1失败后的回调函数

每一个deferred对象,有三种状态

  1. 正在处理中:
  2. 成功状态:
  3. 失败状态:

当deferred对象被resolve/reject触发之后,就会改变状态,然后调用不同状态下的函数。

    //从正在处理的状态变为成功状态,callback done,
    deferred1.resolve(); 
   //从正在处理的状态变为失败状态,callback fail,
  deferred1.reject();

以上就是deferred的基本用法,简单说来。就是可以让我们认为控制一个对象成功失败的状态。看到这里,好像没觉得它有多牛逼。

deferred对象解决了什么问题?~~

1.ajax对象,易读性

特别注意:when函数,只接受deferred对象哦!!!!

上一篇 下一篇

猜你喜欢

热点阅读