jquery中对于批量deferred的处理方法


Posted in Javascript onJanuary 22, 2014

此代码仿照jquery源码中$.when()的实现

function test(i) {
    var dfd = $.Deferred();
    if(i%2 == 0) {
        console.log("resolve " + i);
        dfd.resolve();
    } else {
        console.log("failure " + i);
        dfd.reject();
    }    return dfd.promise();
}
function call() {
    var dfd = $.Deferred();
    var remain = 10;
    for(var i=0;i< 10;i++){
        test(i).done(function() {
            if(!(--remain)) {
                dfd.resolve();
            }
        }).fail(function() {
            if(!(--remain)) {
                dfd.resolve();
            }
        })
    }
    return dfd.promise();
}

call().done(function() {
    console.log("all finished");
});

输出结果:

resolve 0 test.js:4
failure 1 test.js:7
resolve 2 test.js:4
failure 3 test.js:7
resolve 4 test.js:4
failure 5 test.js:7
resolve 6 test.js:4
failure 7 test.js:7
resolve 8 test.js:4
failure 9 test.js:7
all finished
Javascript 相关文章推荐
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
JavaScript 用cloneNode方法克隆节点的代码
Oct 15 Javascript
php和js对数据库图片进行等比缩放示例
Apr 28 Javascript
jQuery处理json数据返回数组和输出的方法
Mar 11 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
微信小程序之圆形进度条实现思路
Feb 22 Javascript
JS非行间样式获取函数的实例代码
Jun 05 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 Javascript
jquery基础教程之deferred对象使用方法
Jan 22 #Javascript
jquery each的几种常用的使用方法示例
Jan 21 #Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 #Javascript
javascript break指定标签打破多层循环示例
Jan 20 #Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 #Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 #Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 #Javascript
You might like
php 缓存函数代码
2008/08/27 PHP
浅析is_writable的php实现
2013/06/18 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
js Event对象的5种坐标
2011/09/12 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
详解javascript函数的参数
2015/11/10 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
Python中for循环详解
2014/01/17 Python
详解python实现线程安全的单例模式
2018/03/05 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python实现汽车管理系统
2018/11/30 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
python 两种方法删除空文件夹
2020/09/29 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
优秀纪检干部材料
2014/08/27 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
读后感作文评语
2014/12/25 职场文书
大四学生个人总结
2015/02/15 职场文书
单独二胎证明
2015/06/24 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android