我一直在阅读Promises和then/catch
语法。
This article非常全面,我认为我明白了:
fetch()
.then()
.catch()
此处,catch()
处理在then()
内调用的代码中抛出的错误。
var p = fetch()
p.then()
p.catch()
这样可以正确捕捉fetch()
引发的错误,并在fetch()
内处理then()
的正确回复。
为什么axios中的行为不同?
这里我发现的所有示例都使用第一种方法来捕获axios()
调用引发的错误。结果是
axios(/* axios stuff */)
.then(successCallback)
.catch(errorCallback)
errorCallback处理axios()
引发的4xx错误,但也处理successCallback
引发的任何运行时错误。或者我在这里遗漏了什么?有没有办法将这两类错误分开?
答案 0 :(得分:1)
catch
将捕获之前抛出的所有错误,如果在任何前面没有处理程序那么第二个参数
如果您不希望errorCallback
处理successCallback
引发的错误,则应将errorCallback置于当时的第二个参数中。
axios(/* axios stuff */)
.then(successCallback, errorCallback)