加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

jquery中对于批量deferred的解决方法

发布时间:2023-09-25 15:35:25 所属栏目:教程 来源:
导读:此代码仿照jquery源码中$.when()的实现

代码如下:

function test(i) {

var dfd = $.Deferred();

if(i%2 == 0) {

console.log("resolve " + i);

dfd.resolve();
此代码仿照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
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章