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 相关文章推荐
Javascript里使用Dom操作Xml
Jan 22 Javascript
模拟select的代码
Oct 19 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
javascript的push使用指南
Dec 05 Javascript
高性能JavaScript DOM编程(1)
Aug 11 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 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 函数中使用static的说明
2012/06/01 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
JS中如何设置readOnly的值
2013/12/25 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
Python队列的定义与使用方法示例
2017/06/24 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
请解释virtual关键字的含义
2015/06/17 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
初中班主任寄语
2014/04/04 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python