关于 axios 拦截器链式调用的一个注意点
const ins = axios.create({
baseURL: 'https://www.showdoc.com.cn/server/api/user/login',
timeout: 1000,
})
ins.interceptors.request.use(config => {
console.log('send the request')
return config
})
ins.interceptors.request.use(config => {
console.log('send the request2')
return config
})
ins.interceptors.response.use(config => {
console.log('send the response')
return config
})
ins.interceptors.response.use(config => {
console.log('send the response2')
return config
})
const res1 = await ins.get('')
对于上述代码,控制台响应的结果是:
send the request2
send the request
send the response
send the response2
我们可以注意到,axios 的请求拦截器和响应拦截器的执行顺序不同:
1. 请求拦截器是逆序返回结果
2. 响应拦截器是顺序返回结果
3. 所以我们在编写 axios 拦截的时候,需要考虑拦截器的编写顺序
看到这里,点个赞呗