【发布时间】:2015-06-22 16:48:25
【问题描述】:
对于一个有角度的项目,我必须嵌套承诺,并且我遇到了我不确定自己在做什么的情况。 这是我的代码之一:
return Action1().then(function (data) {
var defer = $q.defer();
if (data.condition) {
$q.all([Action2(), Action3(), Action4()]).then(function () {
defer.resolve();
});
} else {
defer.reject("error_code");
}
return defer.promise;
});
Action1、Action2、Action3 和 Action4 是有效的 Promise 函数。很多承诺和行动取决于条件。 我可以这样做并确保我的主要功能将始终得到解决或拒绝吗?
我读到我们可以在 resolve 函数中传递 Promise。 我可以这样做吗?和上面一样吗:
return Action1().then(function (data) {
var defer = $q.defer();
if (data.condition) {
defer.resolve($q.all([Action2(), Action3(), Action4()]);
} else {
defer.reject("error_code");
}
return defer.promise;
});
【问题讨论】:
标签: angularjs promise angular-promise