2017-02-03 14 views
0

と私は以下のように私の要求インターセプタを持っている:- 非同期操作要求インターセプタ

var requestFactory = angular.module('queryParamsModule', []) 
     .factory('headerInterceptor', function($injector) { 

      return { 
      request: requestInterceptor 
      }; 

      function requestInterceptor(req) { 
       var accessToken; 
       $injector.get('tokenService').accessToken().then(function(res) { 
       accessToken = res.access_token; 
       console.log(accessToken); >>>>> accessToken is populated fine! 
       req.headers = _.extend({ 
        'Authorization': 'Bearer ' + accessToken 
       }, req.headers); 
       }, function(e) { 
       // error 
       }); 

      return req; 
      } 

     }) 
     .config(function($httpProvider) { 
      $httpProvider.interceptors.push('headerInterceptor'); 
     }); 

     return queryParamsFactory; 

ここでの問題は、認証ヘッダーのための角度doesntの待ちがリクエストに追加する、であると承認ヘッダーを追加する前に迎撃をプッシュ。

accessTokenの約束が完了した後に解決される私のヘッダーインターセプタを約束の一部にする方法はありますか?インターセプタがHTTP configオブジェクトで呼び出されます:the manualとして

答えて

2

は、

要求を言います。この関数は、設定オブジェクトを自由に変更したり、新しいものを作成したりすることができます。この関数は、configオブジェクトを直接返すか、configまたは新しいconfigオブジェクトを含む約束を返す必要があります。

だから、次のようになります。魅力のように働いた

function requestInterceptor(req) { 
     return $injector.get('tokenService').accessToken().then(function(res) { 
     ... 
     return req; 
     }, function(e) { ... }); 
    } 
+0

。どうもありがとう! – theConstructor

+0

ようこそ。 – estus

関連する問題