uni-helper / uni-network

为 uni-app 打造的基于 Promise 的 HTTP 客户端
https://uni-network.netlify.app
MIT License
76 stars 8 forks source link

fix: catch error that 'statuses' might throw #18

Closed edazh closed 1 year ago

edazh commented 1 year ago

Description 描述

当Response HTTP Code为“statuses”未列出的值时,“statuses()”的调用处会抛出异常,无法正常返回响应内容。 所以我在此简单处理了一下这个部分的逻辑,使用catch捕捉可能由“statuses()”的调用抛出的异常。

Linked Issues 关联的 Issues

Additional context 额外上下文

ModyQyW commented 1 year ago

非常感谢你指出这个问题!

鉴于目前已经引入了 HttpStatusCode(文件在 src/core/HttpStatusCode.ts),我又忘了去掉 statuses,能否请你移除 statuses 并直接使用 HttpStatusCode 来实现这个 PR?

edazh commented 1 year ago

我试一下

ModyQyW commented 1 year ago

@edazh 我重新去看了一下 axios 的实现,感觉用 HttpStatusCode 的话少了空格,阅读起来可能有点费劲,还是保留用 statuses 吧。再次感谢你的贡献。

ModyQyW commented 1 year ago

已经发布了 v0.12.6。

edazh commented 1 year ago

可以封装一个方法,在此使用正则处理,可能必要性不大,但是这才PR没有处理其他adapter:upload和download中的异常情况

import { HttpStatusCode } from './HttpStatusCode';

export function getStatusText(code: number) {
  return (HttpStatusCode as Record<number, string | undefined>)[code] || 'invalid status';
}

https://github.com/edazh/uni-network/blob/aaebed7abb669184bc781eb54bcb74df9a7064d5/src/core/getStatusText.ts

edazh commented 1 year ago

我网速比较慢,我刚看到您已经处理了其他adapter,非常感谢!

ModyQyW commented 1 year ago

是的,必要性不大。

没关系,我补充了 upload 和 download adapter 的处理。