前言
上一篇文章中分析了Axios实例对象的创建以及核心的request方法,其中包括拦截器的处理,通过阅读源码知道diapatchRequest负责请求的发送,interectorManager负责管理拦截器,本篇文章就主要分析这两个模块的实际处理过程。
具体分析
dispatchRequest模块
dispatchRequest模块的功能就是发送请求,具体的处理流程如下:
实际上该模块就是调用adapter配置的适配器来实现请求的发送,这里需要关注的点是:
cancel令牌的相关处理
transformRequest和transformResponse相关处理
InterceptorManager模块
拦截器管理对象定义了对于拦截器的定义、取消、执行操作的方法,用数组来存储所有拦截器。
总结
通过dispatchRequest模块知道,实际上发送请求时adapter方法,该模块处理了cancelToken的应用、transformRequest、transformResponse的应用,返回请求结果。
InterceptorManager模块揭示了Interceptor的添加和取消等操作。
下一篇文章会去分析defaults.js模块,adapter就是在该模块中定义的。