JQ 控制方法执行顺序的几种方法 JQ 队列 JQ方法 JQ执行顺序

3 篇文章 0 订阅

很久之前我就意识到很多时候我们都需要控制一下这个jq方法的执行顺序,或者是遇到了嵌套地狱,无法复用的问题

 

多方查找后找到了 Deferred(从jQuery 1.5.0版本开始引入的一个新功能)

 

简单说一下使用方法:

首先注册var def = $.Deferred();

注册后var prs1 = def.then(自定义函数);

var prs2 = prs1.then(自定义函数);    prs1函数执行完毕执行prs2函数

最后还需要触发这个注册 def.resolve("0");

即可

 

如上所述就可以控制程序的运行顺序了

 

简单说一下jq这部分的原理

deferred对象是一个延迟对象,意思是函数延迟到某个点才开始执行,改变执行状态的方法有两个(成功:resolve和失败:reject),分别对应两种执行回调(成功回调函数:done和失败回调函数fail)

deferred对象的多种方法,下面给大家总结一下啊:

  (1) $.Deferred() 生成一个deferred对象。

  (2) deferred.done() 指定操作成功时的回调函数

  (3) deferred.fail() 指定操作失败时的回调函数

  (4) deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变;接受参数时,作用为在参数对象上部署deferred接口。

  (5) deferred.resolve() 手动改变deferred对象的运行状态为"已完成",从而立即触发done()方法。

  (6)deferred.reject() 这个方法与deferred.resolve()正好相反,调用后将deferred对象的运行状态变为"已失败",从而立即触发fail()方法。

  (7) $.when() 为多个操作指定回调函数。

除了这些方法以外,deferred对象还有二个重要方法,上面的教程中没有涉及到。

  (8)deferred.then()

有时为了省事,可以把done()和fail()合在一起写,这就是then()方法。

*当然了,这都是阮一峰老师总结的

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值