Axios 拒绝 Error 类型的错误。 添加自定义错误类型将有助于区分 axios 和其他错误。 现在唯一的方法是检查“请求”字段的存在,这并不总是可能的。 我们的内部自定义错误类型也有这个字段。
const { axios, AxiosError } = require('axios');
...
try {
...
const response = await axios.get(url);
...
} catch (error) {
if(error instanceof AxiosError) {
return processAxiosError(error);
}
throw error;
}
涉及:#24
这很简单,但将是一个突破性的变化。
AxiosError 必须继承自 Error。 这不会改变。
如果有人在检查error.constructor.name === 'Error'
我同意,但这是一个小的突破性变化。 我们可以牺牲它来获得更好的 API 吗?
我赞成这一点,但我个人更愿意,如果维护者当然同意,我们将 axios 升级为 semver,v1.0.0
Axios 确实看起来足够稳定,并且遵循 semver-major 可以防止损坏。
另一方面,鉴于 axios 的广泛使用以及 React 和 Vue.js 的首选 HTTP 库,重大更改可能会产生重大影响,需要加以考虑。
实际上,现在我检查了,axios 正在开发一个 v1.0.0 分支,我今天可能会为此打开一个 PR。
@mzabriskie ,@nikkuraltsev
@贾斯汀贝克威斯
/cc @Khaledgarbaya @axe312ger @zcei
哦,是的,这会有很大帮助。 在我们的 SDK 中有同样的问题。
我们可以将此添加到#1333 @Khaledgarbaya 吗?
PR 已经存在,我在 #1419 中添加了 0.x 版本的软修复作为标志,并在 #1420 中更改了 1.x 的错误类型,请参阅链接的 PR
@axe312ger @Khaledgarbaya 对此有何更新?
@axe312ger 请问有什么更新吗?
必须传递给@Khaledgarbaya 😅
这将是美妙的。 现在遇到这个问题!
这个问题有进展吗? 将 axios 错误与其他错误区分开来很有用。 并且将 isAxiosError 标志添加到 axios https://github.com/axios/axios/pull/1419引发的错误是一个很好的解决方案,不会破坏更改。 请考虑在补丁版本中添加此标志?
+1
@Khaledgarbaya 对此有何更新?
我仍然喜欢这个,因为我们都有工作,请随时作为 PR 贡献
@axe312ger我们已经有 5 个月的 2 个 PR!
哎呀。 很难跟踪这个回购。
我更喜欢https://github.com/axios/axios/pull/1419最终进入 master 状态,因为 v1 重写目前由于我们方面没有时间而有点冻结。
你能解决冲突并在其中提及一些人吗?
那很快:)
那是开源的:)
GitHub 的强大之处在于 :trollface:
@axe312ger @Khaledgarbaya 请问现在要求发布还为时过早吗?
@AyushG3112不幸的是我没有 npm 发布权
@nickuraltsev @emilyemorehouse有计划很快发布这个吗?
我想如果实现的话,会比使用更实用、更清晰
@axe312ger @Khaledgarbaya @nickuraltsev @emilyemorehouse你们中的任何人都可以@-提及具有 npm 发布权的人吗?
AxiosError 会更好...有人可以发布 isAxiosError 更改吗?
因为至少我们需要一些类型保护功能,比如function isAxiosError(error: Error): error is AxiosError { return !!error.isAxiosError }
,所以最好将它放在库端。
@Khaledgarbaya @axe312ger已经几个月了,我们可以发布吗?
我们无权将 axios 发布到 npm
你能标记一个这样做的人吗?
你去年 12 月自己做了https://github.com/axios/axios/issues/1415#issuecomment -449578470 - Nick 和 Emily 拥有发布权。
👋 我一直在处理所有版本的一致性。 一旦CI再次变绿,我就会释放!
最有用的评论
这现在已在https://github.com/axios/axios/pull/1419中修复