//定义一个数组,用于装需要并发的函数
var apisPost = [];
//往里面装异步的函数
apisPost.push(function () {
var dtd = $.Deferred();
//封装的ajax请求
api.apiFn('url', {}, function (d) {
//ajax请求成功resolve
dtd.resolve();
});
//返回promise状态
return dtd.promise();
});
//装第二个函数
apisPost.push(function () {
var dtd = $.Deferred();
api.apiFn('url', {}, function (d) {
dtd.resolve();
});
return dtd.promise();
});
//并发请求
//使用apply实现遍历数组中函数,配合map得到每个promise并返回
$.when.apply(null, apisPost.map(function (v) {
return v();
})).done(function (data) {
//所有并发都成功
}).fail(function (error) {
//并发没有全部成功
})
Jquery中Deferred实现函数数组并发
最新推荐文章于 2021-08-06 06:41:59 发布