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 相关文章推荐
大家未必知道的Js技巧收藏
Apr 07 Javascript
javascript getElementsByTagName
Jan 31 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
Jun 28 Javascript
无缝滚动js代码通俗易懂(自写)
Jun 19 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
Apr 04 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 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
杏林同学录(一)
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
js实现碰撞检测
2021/01/29 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python实现图片处理和特征提取详解
2017/11/13 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
用Python写一个自动木马程序
2019/09/17 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
Linux文件操作命令都有哪些
2016/07/23 面试题
亿企通软件测试面试题
2012/04/10 面试题
环保建议书600字
2014/05/14 职场文书
读群众路线的心得体会
2014/09/03 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
导游词之无锡古运河
2019/11/14 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
方法汇总:Python 安装第三方库常用
2022/04/26 Python