适配器其实就是对不同情况进行统一适配
axios 完美地抹平了浏览器和 node 环境下 api 的调用差异,靠的正是对适配器模式的灵活运用
function getDefaultAdapter() {
var adapter
// 判断当前是否是node环境
if (
typeof process !== 'undefined' &&
Object.prototype.toString.call(process) === '[object process]'
) {
// 如果是node环境,调用node专属的http适配器
adapter = require('./adapters/http')
} else if (typeof XMLHttpRequest !== 'undefined') {
// 如果是浏览器环境,调用基于xhr的适配器
adapter = require('./adapters/xhr')
}
return adapter
}
把变化留给自己,把统一留给用户