jquery中对于批量deferred的处理方法
jquery中对于批量deferred的处理方法
发布时间:2016-12-30 来源:查字典编辑
摘要:此代码仿照jquery源码中$.when()的实现复制代码代码如下:functiontest(i){vardfd=$.Deferred();...

此代码仿照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教程学习
编程开发子分类