停止Axios承诺链

时间:2018-07-13 17:45:48

标签: javascript axios

突破这一链条的正确方法是什么?就像,如果我很忙,我不希望执行以下两个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);

2 个答案:

答案 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解析的函数中检索值。