axios细节解析

63 阅读1分钟

两种使用方式,优先第二种:

  1. 直接向axios传递配置来创建请求:配置是全局的
    • axios(config)
    • axios(url[, config])
  2. 创建axios实例,然后调用实例方法来创建请求:可以创建多个实例,传入不同的配置,比如不同的axios实例有不同的服务器地址
    • 创建实例对象:axios.create([config])
    • 调用实例方法:axios.request(config)

环境判断方法:typeof XMLHttpRequest !== 'undefined'

const default.adapters = ['xhr', 'http']
const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter
}
// 循环判断default.adapters中哪一个符合当前环境,比如xhrAdapter:
const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
export default isXHRAdapterSupported && function (config) {
  // 完成XMLHttpRequest的promise封装 
  return new Promise(function dispatchXhrRequest(resolve, reject) {
   ......
   let request = new XMLHttpRequest();
   ......
  })
}