iWantResolve = true;//判断条件
function promise1() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise1 resolved");
} else {
deferred.reject("promise1 reject");
}
}, 500);
return deferred.promise;
}
function promise2() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise2 resolved");
} else {
deferred.reject("promise2 reject");
}
}, 500);
return deferred.promise;
}
function promise3() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise3 resolved");
} else {
deferred.reject("promise3 reject");
}
}, 500);
return deferred.promise;
}
function promise4() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise4 resolved");
} else {
deferred.reject("promise4 reject");
}
}, 500);
return deferred.promise;
}
function promise5() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise5 resolved");
} else {
deferred.reject("promise5 reject");
}
}, 500);
return deferred.promise;
}
function promise6() {
var deferred = $q.defer();
$timeout(function () {
if (iWantResolve) {
deferred.resolve("promise6 resolved");
} else {
deferred.reject("promise6 reject");
}
}, 500);
return deferred.promise;
}
var q = [];
var deferred5 = $q.defer();
var deferred6 = $q.defer();
$q.all([promise1(), promise2()])//执行promise1(), promise2()后,执行promise5()
.then(function (dataArr) {
console.log(dataArr);//对promise1(), promise2()的结果进行操作
promise5().then(function(data){
deferred5.resolve("promise5 resolved-----");
});
}, function (err) {
console.log("$q.all: ", err)
});
q.push(deferred5.promise);//将promise5()的结果push到q数组中
$q.all([promise3(), promise4()])//执行promise3(), promise4()后,执行promise6()
.then(function (dataArr) {
console.log(dataArr);//对promise3(), promise4()的结果进行操作
promise6().then(function(data){
deferred6.resolve("promise6 resolved-----");
});
}, function (err) {
console.log("$q.all: ", err)
});
q.push(deferred6.promise);//将promise6()的结果push到q数组中
$q.all(q)//运行q
.then(function (dataArr) {
console.log(dataArr);
}, function (err) {
console.log("$q.all: ", err)
});