Axios: javascript 的 AxiosError 类型

创建于 2018-03-14  ·  37评论  ·  资料来源: axios/axios

概括

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;
}

语境

  • axios 版本:0.18.0

涉及:#24

最有用的评论

所有37条评论

这很简单,但将是一个突破性的变化。

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!

1420 和 #1419

哎呀。 很难跟踪这个回购。

我更喜欢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再次变绿,我就会释放!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Adman picture Adman  ·  3评论

c0debreaker picture c0debreaker  ·  3评论

helmus picture helmus  ·  3评论

shaosh picture shaosh  ·  3评论

Spartano picture Spartano  ·  3评论