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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
Javascript 浮点运算的问题分析与解决方法
Aug 27 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
Feb 04 Javascript
JavaScript DOM元素尺寸和位置
Apr 13 Javascript
理解JavaScript事件对象
Jan 25 Javascript
Javascript的无new构建实例详解
May 15 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
taro开发微信小程序的实践
May 21 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 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分页函数
2006/07/08 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
python冒泡排序简单实现方法
2015/07/09 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
python简易远程控制单线程版
2018/06/20 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python判断telnet通不通的实例
2019/01/26 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
浅析Python 责任链设计模式
2020/09/11 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
工作的心得体会
2013/12/31 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
MySQL分库分表详情
2021/09/25 MySQL
python实现会员管理系统
2022/03/18 Python