是否有多个 Angular HTTP 拦截器文件会使请求比一个巨大的拦截器文件慢?

问题描述

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

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

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

感谢您的意见。

解决方法

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

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

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

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

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