使用注入器Angularjs保留请求

时间:2017-08-25 20:55:51

标签: angularjs angular-promise

我想知道是否有办法保存请求以便逐个执行它们而不是一起执行它们?

要求1 要求2 请求3

如果我几乎一起收到它们的想法是执行请求1并在此请求完成后执行其他请求。

别忘了我想用喷射器做到这一点。

提前致谢!!

1 个答案:

答案 0 :(得分:0)

您可以使用AngularJS拦截器保留请求,方法是在request方法中返回一个承诺:

authInterceptor.$inject = ['$q', '$rootScope'];
function authInterceptor($q, $rootScope) {
    return {
        request: function(config) {
            var deferred = $q.defer();

            if(condition) {
                deferred.resolve(config)
            }

            return deferred.promise;
        }
    };
}

在此示例中,请求将一直持续到满足某些条件。

您可以做的是保留每个请求的句柄(上例中的deferred变量),并通过按所需顺序解析每个请求来发送它们。