您的位置
主页 > 网站技术 > 语言编程 > » 正文

jquery中对于批量deferred的处理方法

来源: 站长圈 点击:

复制代码 代码如下:

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




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明