【发布时间】: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/catch和await getSync -
您没有在
getUser中捕获,请使用.catch方法捕获该错误。如果您需要对 customRequest 执行特定操作,可以使用 try catch,但请确保在 catch 中再次抛出错误,以便下一个 catch 可以处理它。但是,您应该调整调用此 api 方法的方式并使用状态来响应以呈现错误 -
如果您能帮助我提供沙盒代码示例,我将不胜感激 :)
-
谢谢大家@JohnRuddell,它成功了。我还想提一下,我在
getSync()中使用了return err而不是throw err(这在原始代码中也被遗漏了。)。
标签: reactjs promise axios try-catch