拿起Typescript做一个轮子(四)
处理网络异常错误 当网络出现异常的时候发送请求会触发XMLHttpRequest对象实例的error事件,于是我们可以在onerror的事件回调函数中捕获此类错误。
我们在xhr函数中添加以下代码:
文章图片
处理超时错误 我们可以设置某个请求的超时时间timeout,也就是当请求发送超过某个时间后仍然没收到响应,则请求自动终止,并触发timeout事件。
请求默认的超时时间是0,所以我们首先需要允许配置超时时间。
【拿起Typescript做一个轮子(四)】
文章图片
接下来在xhr函数中添加超时处理逻辑:
文章图片
处理非200状态码 对于一个正常的请求,往往会返回200-300之间的HTTP状态码,对于不在这个区间的状态码,我们也把它们认为是一种错误的情况处理。
我们再来改造下xhr函数:
文章图片
文章图片
错误信息增加 之前我们已经捕获了几类AJAX的错误,但是对于错误信息的提供非常有限,我们希望不仅包含错误文本信息,还包含了请求配置对象config,错误代码code,XMLHttpRequest对象实例request以及自定义响应对象response。
创建AxiosError类
先定义AxiosError类型接口:
文章图片
接着我们在helper文件夹下创建error.ts文件,然后实现AxiosError类
文章图片
应用createError方法 改造xhr方法
文章图片
到此我们对错误的处理就完成了,之后我们对axios接口做扩展,支持更多的api。
推荐阅读
- 我要做大厨
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 我从来不做坏事
- 子龙老师语录
- 做一件事情的基本原理是什么()
- 做个俗物有什么不好
- 28岁|28岁,做一个通透又自由的姑娘。
- 良心
- 原生家庭之痛与超越
- 我喜欢做菜,是因为懂得了什么是爱