2016-03-21 66 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