小编Jer*_*odi的帖子

有条件的有条件承诺

对于一个有角度的项目,我必须嵌套承诺,我遇到了我不确定我在做什么的情况.这是我的一个代码:

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;
});
Run Code Online (Sandbox Code Playgroud)

Action1,Action2,Action3和Action4正在使用promises函数.这是很多承诺和行动取决于条件.我可以这样做,并确保我的主要功能将始终被解决或拒绝?

我读到我们可以在promise函数中传递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;
});
Run Code Online (Sandbox Code Playgroud)

promise angularjs angular-promise

6
推荐指数
1
解决办法
3954
查看次数

标签 统计

angular-promise ×1

angularjs ×1

promise ×1