0

我是 Angular 的新手,并试图在这里使用 HTTP 拦截器。

我只是想知道是否应该合并多个拦截器,例如在一个文件中设置标头的令牌、缓存控制、内容类型,还是应该将其分成 token.interceptor.ts 以获取令牌并将其他通用标头放在 headers.interceptor 中。 ts。

后者的性能是否更差,因为它必须再次调用 req.clone() 来设置标题,或者 Angular 注入是否以另一种方式工作?关于这个主题的最佳实践是什么?

感谢您的意见。

4

1 回答 1

0

我们可以将这个问题分为 2 个子问题。

我只是想知道是否应该合并多个拦截器,例如在一个文件中设置标头的令牌、缓存控制、内容类型,还是应该将其分离到 token.interceptor.ts 中以获得令牌并将其他通用标头放在 headers.interceptor 中。 ts。

您可以在角度 httpInterceptor 中设置多个标头。它确实支持多头功能。

后者的性能是否更差,因为它必须再次调用 req.clone() 来设置标题,或者 Angular 注入是否以另一种方式工作?关于这个主题的最佳实践是什么?

如果您必须更改请求,请先克隆它并修改克隆,然后再将其传递给 next.handle()。clone() 方法的 hash 参数允许您在复制其他请求的同时改变请求的特定属性。参考API 文档

于 2021-05-25T05:46:55.850 回答