- 从语法上来说:axios不是 Axios 的实例
- 从功能上来说:axios 是 Axios的实例
- axios 是 Axios.prototype.request 函数 bind()返回的函数
4
axigs 作为对象有 Axios 原型对象上的所有方法,有Axios对象上所有展性
3.2.2. instance 与 axios 的区别?
(1)都是一个能发任意请求的函数: request(config)
(2)都有发特定请求的各种方法:get()/post()/put()/delete()
(3)都有默认配置和拦截器的属性:defaults/interceptors
不同:
(1)默认配置很可能不一样
(2)instance 没有 axios后面添加的一些方法: create()/CancelToken()/all()
request(config):
将请求拦截器 /dispatchRequest()/响应拦截器 通过 promise 链串连起来,
返回 promise
3. dispatchRequest(config):
转换请求数据 ===> 调用 xhrAdapter()发请求> 请求返回后转换响应数
据,返回 promise
4. xhrAdapter(config)
创建XHR 对象,根据 config 进行相应设置,发送特定请求,并接收响应数据,返回 promise
在请求得到响应后执行的回调函数
可以对响应数据进行特定处理
成功的回调函数,传递的默认是 response
失败的回调函数,传递的默认是 error