2016-03-21 68 views
2

假設我註冊angular.js應用幾個HTTP攔截器:

$httpProvider.interceptors.push(function() { 
    return { 
     request: function(config) { 
     console.log("interceptor A request"); 
     return config; 
     }, 
     response: function(res) { 
     console.log("interceptor A response"); 
     return res; 
     } 
    }; 
    }); 
    $httpProvider.interceptors.push(...); // interceptor B with similar code 
    $httpProvider.interceptors.push(...); // interceptor C with similar code 

的次序將它們被執行?

回答

6

看來,攔截器執行:

  • 註冊順序用於請求
  • 用於響應

登錄反向註冊順序

interceptor A request 
interceptor B request 
interceptor C request 
(request happens here) 
interceptor C response 
interceptor B response 
interceptor A response 
+2

你的理解是對的。請參閱鏈接:https://blog.codecentric.de/en/2015/03/angular-http-interceptors-source/ – Harpreet