解析axios的过程

本文解析了axios的构造函数、createInstance、request函数、InterceptorManger请求拦截和CancelToken取消请求的功能。通过promise链式调用封装ajax,实现请求拦截、响应拦截及请求取消等特性。
摘要由CSDN通过智能技术生成

大致思路是这样子的,利用promise的链式调用,对ajax进行封装,请求结果通过then方法回传给axios,下面进行了逐步分析,不对的地方还希望大家指出。

 

准备Axios构造函数

构造函数主要是用来存储配置信息,default:用来存储axios传递的配置信息(如图一),interceptors:进行请求拦截(如图二),get/post/request:发送请求,这里的get/post都是依赖于request方法

function Ajax(){
    this.default = null;
    this.interceptors = {
        request: new InterceptorManger(),
        response: new InterceptorManger()
    }
}
Ajax.prototype.request = function(config){
    this.default = config;
}
Ajax.prototype.get = function(config){
    return Ajax.prototype.request(Object.assign({},{method:'get'},config));
}
Ajax.prototype.post = function(){
    return Ajax.prototype.request(Object.assign({},{method:'post'},config))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值