您现在的位置:主页 > 技术中心 > WEB编程 > JavaScript

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

来源:网络 责任编辑:admin 发表时间: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模仿桌面窗口
    • 用js检测两个线段是否相交
    • 运用JavaScript构建你的第一个Metro式应用程序(o
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    • Jquery封装幻灯片效果
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司