运行逻辑 :
1.创建axios,包含defaults和interceptors属性
2.设置拦截器,向拦截器(interceptors)handlers属性中添加对象
3.调用axios,触发Axios.prototype.request调用
把请求拦截器handlers属性加到chains数组前边
把响应拦截器handlers属性加到chains数组后边
遍历chains数组,处理请求拦截,触发dispatchRequest函数
4.触发xhrAdapte函数,发送请求,状态改为padding
请求完成,触发resolve,继续遍历chains数组,处理响应拦截
5. 触发axios().then()或axios().catch()函数
demo链接:
GitHub - 939624959/miniAxios: axios学习笔记,仿源码简单实现axios相关功能
图片为纯手写,若有代码单词错误,敬请谅解~