需求
业务上的需要,request
的配置上区别很大,所以建了两个request
请求文件,对应的接口调用对应的request
问题
在两个文件的拦截器中log
,会发现发起一个请求,两个拦截器都有进入
Code
两个文件不好演示,使用放在一个文件,建两个实例
const http1 = extend();
const http2 = extend();
const responseInterceptor = response => {
console.log('hello world');
return response;
};
http1.interceptors.response.use(responseInterceptor);
http2.interceptors.response.use(responseInterceptor);
当使用其中一个如 http2
发送请求后,console.log('hello world')
会执行两次。
解决方案
如果是想多个request的使用,那么意味着你想这些request各自独立
http1.interceptors.response.use(responseInterceptor, { global: false });
拦截器的第二个参数,带上{global:false}
注意!!没有带上这个参数的,依然会进入它的拦截器!
比如,
只有http1
带了这个参数,
那么http2
的请求就不会进入http1
的拦截器
但是 http1
的请求,依然会进入http2
的拦截器!