突破这一链条的正确方法是什么?就像,如果我很忙,我不希望执行以下两个then
。
我以前的catch
最后是return axios
.post(url, data)
.catch(error => {
const message = getBannerTextFailureMessage(liability, toStatus)
dispatch(showBanner(message, bannerConstants.typeError))
})
.then(response => {
return dispatch(updateLiabilitiesComplete())
})
.then(response => {
const message = getBannerTextSuccessMessage(liability, toStatus)
dispatch(showBanner(message, bannerConstants.typeSuccess))
})
,但我认为它可能会有所帮助。没有。
int test(char* input, char** output);
答案 0 :(得分:1)
.catch
捕获了Promise链的任何先前部分,并在.then
未捕获之后(除非还有另一个.catch
)离开了.catch
之后没有拒绝功能。这意味着当.then
位于链的末尾时,您的链可能在.catch
之一中失败,并且可能在您{{{ 1}})。
只需从控制台日志中删除(临时).catch
并找出失败的部分。
答案 1 :(得分:0)
解决承诺后,catch
用于捕获任何then
块中的任何错误。因此,如果将catch
块放在then
之后,则将捕获可能由先前的then
块引起的的第一个错误。因此,在您曾经使用过的地方使用catch毫无意义,而且第一个then
块在解决后也会从promise中获得返回值。
在catch块中:
执行console.log(error)
找出您遇到的错误。
还可以使用eventlisteners
(断开链接)从Promise解析的函数中检索值。