>[danger]axios的请求拦截和响应拦截底层实现原理是什么? Axios 的请求拦截和响应拦截的底层实现原理是通过使用拦截器(interceptor)来实现的。 请求拦截器和响应拦截器都是基于 Axios 的拦截器机制来实现的。拦截器是一个函数,可以在请求发送之前或响应返回之后对其进行处理。Axios 通过 `interceptors` 对象提供了 `request` 和 `response` 属性来访问请求拦截器和响应拦截器。 具体实现原理如下: 1. 请求拦截器原理: - Axios 使用 `axios.interceptors.request.use()` 方法添加请求拦截器。 - 该方法接收两个参数:一个是成功回调函数,一个是错误回调函数。 - 当发送请求时,请求会先经过请求拦截器的成功回调函数,然后再发往服务器。 - 成功回调函数可以对请求进行修改或增加额外的配置信息等。 - 如果请求拦截器的成功回调函数中发生错误,会触发错误回调函数。 2. 响应拦截器原理: - Axios 使用 `axios.interceptors.response.use()` 方法添加响应拦截器。 - 该方法也接收两个参数:一个是成功回调函数,一个是错误回调函数。 - 当接收到服务器响应后,响应会先经过响应拦截器的成功回调函数,然后再返回给调用方。 - 成功回调函数可以对响应进行修改、过滤或处理等。 - 如果响应拦截器的成功回调函数中发生错误,会触发错误回调函数。 通过使用请求拦截器和响应拦截器,我们可以在请求发出前和响应返回后对其进行预处理以及统一处理错误。例如,在请求拦截器中可以设置统一的请求头,而在响应拦截器中可以对返回的数据进行格式化或错误处理。 需要注意的是,拦截器是基于 Promise 实现的,可以通过 `Promise.resolve()` 和 `Promise.reject()` 来控制拦截器的执行流程。同时,拦截器可以添加多个,它们会按照添加的顺序依次执行。