【问题标题】:Why error block is not returning from customRequest file in axios in ReactJS为什么错误块没有从 ReactJS 中的 axios 中的 customRequest 文件返回
【发布时间】:2021-12-13 22:10:57
【问题描述】:

我面临以下问题,请纠正我哪里出错:

这是我的代码沙箱链接:https://codesandbox.io/s/autumn-wave-o1z8q

如果您在 App.JS 文件中进行检查,我将使用 URL 参数调用 getSync()。而getSync()是Axios内接电话的try and catch block

我得到了什么输出::我没有在适当的代码块中收到适当的错误消息 catch and then()

我的观察:如果我在 App.js 中实现 try 和 catch 并直接在 getUser() 中调用 API,那么它会在 catch 块中正确反映错误。

但是,当从另一个文件返回相同的实现时,它给出了这个问题

我的目标:我的目标是,如果我们从 API 中得到任何错误,那么它应该从 customRequest.js 中的 getSync() 的 catch 块返回,然后是 2nd then() of getUser in App.js

我知道我在这里遗漏了一些代码,请指导我

【问题讨论】:

  • 不要在getSync 中使用catch,在getUser 中使用.catch(),或者如果您更喜欢在getUser 中使用try/catchawait getSync
  • 您没有在getUser 中捕获,请使用.catch 方法捕获该错误。如果您需要对 customRequest 执行特定操作,可以使用 try catch,但请确保在 catch 中再次抛出错误,以便下一个 catch 可以处理它。但是,您应该调整调用此 api 方法的方式并使用状态来响应以呈现错误
  • 如果您能帮助我提供沙盒代码示例,我将不胜感激 :)
  • 谢谢大家@JohnRuddell,它成功了。我还想提一下,我在getSync() 中使用了return err 而不是throw err(这在原始代码中也被遗漏了。)。

标签: reactjs promise axios try-catch


【解决方案1】:

现在按预期工作。 codesandbox.io/s/blissful-http-w12tj – 由@John Ruddell 提供

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2018-09-16
    • 2021-11-05
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多