场景:获取到一个接口的数据后,再请求另一个接口,把两个接口的数据进行比较、合并。
由于Axios拦截器的返回值可以是新的Promise,所以这个需求可以这么实现:
import axios from "axios";
axios.interceptors.response.use(function (response) {
return new Promise((resolve) => {
axios.get('url2').then(res => {
//在这里对两个接口的数据进行处理,response是原始接口的数据, res是新接口的数据
func(response, res);
resolve(response); //将处理后的response传给回调函数
})
})
})
正常调用接口即可,调用示例:
const resolveFunc = (res) => {
console.log(res);
}
// 这里的resolveFunc接收到的数据是被拦截器处理之后的
axios.get('url').then(resolveFunc);