请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

创建 AxiosError 类 的必要性

老师,我不是很理解为什么要创建 一个 AxiosError 类来 进行错误的信息的处理。
我们完全可以 在 reject 的时候 reject 一个 对象出去吧。效果也是等同的?
事实上 我们 在 resolve 的时候 就是 直接 resolve 出去一个 对象了啊,而并没有说为 resolve 的信息 而创建一个 AxiosResponse 类,仅仅是有一个 AxiosResponse Interface。
如果 有一个 AxiosResponse 类,那么 我们就可以将在 上一节当中处理 响应 headers 及 处理 响应 data 放置到 类中,而不是 全部在 xhr.ts 当中处理?
两者间 为什么会有要这样处理的差异?

然后,我能够想到的 用一个类处理信息的好处如下

  1. 方便以后的的代码扩展维护,如果以后新增的其它错误信息,不需要跑到 xhr.ts 当中修改,而直接修改 error.ts 当中即可
  2. 应该也是结合第一点来说的,既是 很好的做到了 代码模块化处理,代码分割?

如果 还有其它的好处,请老师也 一一列举下吧

正在回答 回答被采纳积分+3

2回答

ni_我_ta 2020-03-10 16:48:25

单独创建一个AxiosError类主要是为了组织代码,因为课程中有多个地方调用了createError(返回AxiosError类实例),不用AxiosError类组织,那么你就要在每个抛出错误的地方返回一个字面量对象(有很多属性),代码结构不好。resolve的时候之所以没有用类组织数据,是因为只在一个地方使用了resolve

0 回复 有任何疑惑可以回复我~
ustbhuangyi 2019-06-25 10:56:33

AxisoError 类的另一个好处是标识它是一个由 Axios 内部发出的错误,因为它有一个 isAxiosError 为 true 的标识。因为在实际使用过程中可能出现的错误原因会有很多,这样用户可以在 catch 中对 e 做判断了。

0 回复 有任何疑惑可以回复我~
  • 提问者 aznmoe #1
    reject 的时候 同样 可以 暴露 一个包含 isAxiosError 的属性啊。老师,你没有回答完 问题,既是,AxiosResponse 为什么不封装成类,两者怎样的差异导致一个封装一个不封装?
    回复 有任何疑惑可以回复我~ 2019-06-25 11:12:13
  • ustbhuangyi 回复 提问者 aznmoe #2
    AxiosError 可以通过类的方式继承 Error,而 AxiosResponse 不需要继承
    回复 有任何疑惑可以回复我~ 2019-06-25 11:35:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信