1, next 是一个叫 HttpHandler 的对象,这个对象是用来处理 Http Request 的,处理的结果是产生一个 HTTP 事件流,其中 HttpResponse 也就是服务端返回的响应会出现在这个流中。在 interceptor 中的HttpHandler( 也就是 next)参数就是下一个 interceptor。 Interceptor 的顺序不是依赖注入的顺序,而是在 providers 数组中声明的顺序,注意这个 providers 数组虽然是为依赖注入服务的,但不能叫依赖注入的顺序,因为注入行为是发生在你的组件或其它类构造中的。
2. 拦截器之所以叫拦截,说明这个行为发生在 request 发起之后,也就在订阅之后,这个拦截行为才会发生。如果在 handle 之前进行处理,就是在 request 真正发送给服务器之前对于 request 进行处理,处理后再发送请求。而在 handle 之后则是接到服务器的 response 之后,进行处理,然后再交给 httpclient,对于 httpclient 来说,收到的 response 就是你处理后的。