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 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
得到jQuery detach()后节点中的某个值实现代码
Feb 05 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
Javascript基础教程之JavaScript语法
Jan 18 Javascript
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
详解webpack+angular2开发环境搭建
Jun 28 Javascript
mpvue跳转页面及注意事项
Aug 03 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
PHP实现下载功能的代码
2012/09/29 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
JavaScript 的继承
2011/10/01 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python绘制3D图形
2018/05/03 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
行政管理专业求职信
2014/07/06 职场文书
简易版租房协议书范本
2014/10/13 职场文书
办公室管理规章制度
2015/08/04 职场文书
单位车辆管理制度
2015/08/05 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
Nginx限流和黑名单配置
2022/05/20 Servers