AngularJS HTTP拦截器:请求函数冻结了应用程序

时间:2017-08-17 13:45:27

标签: angularjs angular-http-interceptors

场景很简单:

在进行任何ajax调用之前,我需要检查refresh_token是否已过期。如果有,我发送一个新请求来刷新它。操作完成后,我允许原始请求被执行。

但问题是,如果我想发送额外的ajax请求,我会冻结我的应用程序。为什么?我现在可以在这里使用任何其他服务吗?

app.config(function ($httpProvider) {

  $httpProvider.interceptors.push(function ($timeout, $q, $injector, $rootScope) {
    var AUTHService;

    $timeout(function () {
      AUTHService = $injector.get('AUTHService');
    });

    return {
        request: function(config) {
            if (AUTHService) {
                if (AUTHService.checkTokenExpired()) {
                    $q.all([AUTHService.RefreshToken()]);
                    return config;
                } else {
                    return config;
                }
            } else {
                return config;
            }
        }
    };
  });
});

0 个答案:

没有答案