jQuery源码分析-05异步队列 Deferred

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 08:39 点击:

5.异步队列Deferred

5.1        概述

异步队列是一个链式对象,增强对回调函数的管理和调用,用于处理异步任务。

异步队列有三种状态:初始化(unresolved),成功(resolved),失败(rejected)。

执行哪些回调函数依赖于状态。

状态变为成功(resolved)或失败(rejected)后,将保持不变。

回调函数的绑定可以是同步,也可以是异步的,即可以在任何时候绑定。

(本节中的 绑定 注册 增加 具有相同的含义)

5.2        关键方法

先看看jQuery. Deferred()中的关键方法

分类

方法

说明

增加

deferred.done()

增加成功回调函数

状态为成功(resolved)时立即调用

deferred.fail()

增加失败回调函数

状态为失败(rejected)时立即调用

deferred.then()

增加成功回调函数失败回调函数到各自的队列中

便捷方法,两个参数可以是数组或null

状态为成功(resolved)时立即调用成功回调函数

状态为失败(rejected)时立即调用失败回调函数

 

deferred.always()

增加回调函数,同时增加到成功队列失败队列

状态已确定(无论成功失败)时立即调用回调函数

执行

deferred.resolve()

调用成功回调函数队列

通过调用deferred.resolveWith()实现

deferred.resolveWith()

使用指定的上下文和参数执行成功回调函数

deferred.reject()

调用失败回调函数队列

通过调用deferred.rejectWith()实现

deferred.rejectWith()

使用指定的上下文和参数执行失败回调函数队列

其他

deferred.isRejected()

判断状态是否为成功(resolved)

deferred.isResolved()

判断状态是否为失败(rejected)

deferred.pipe()

 

每次调用回调函数之前先调用传入的成功过滤函数失败过滤函数,并将过滤函数的返回值作为回调函数的参数

最终返回一个只读视图(调用promise实现)

deferred.promise()

返回deferred的只读视图

接下来将会jQuery._Deferred和jQuery.Deferred的源码详细剖析。


 

 

5.3        jQuery._Deferred

局部变量

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Gb2312转utf-8编码的方法(vbs+js)
    • 如何使用Ajax技术开发Web应用程序(1)
    • js跳转路径问题
    • JavaScript模仿桌面窗口
    • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
    • 用js检测两个线段是否相交
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    • 2011年度最佳 jQuery 插件
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1