ReactJS和Promise:那么如何调用catch?

时间:2018-10-12 13:12:02

标签: javascript reactjs redux es6-promise redux-thunk

因此,我有一个动作创建器(返回一个函数-我使用redux-thunk)。在创建者返回的函数内部,我调用了一个dispatch方法并链接了thencatch方法。 如下所示:

export function actionCreator(someData) {
    (dispath, getState) => {
        return dispatch(someAction)
        .then(resp => {
            //do something
            // GO TO CATCH
        })
        .catch(err => {
            return err;
        })
    }
}

您在那看到开始关注的评论吗?那么,我怎样才能从那里去赶路呢?

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您想从.then()的正文跳到后面的.catch(),最简单的方法是抛出错误:

throw new Error('I meant to blow up here.');

您引发的错误将传递给.catch()的主体(在您的情况下为err变量)。

请注意,您的示例已经看起来很可疑:您的catch块正在捕获错误,然后返回好像错误是常规值一样,这意味着任何基于上游承诺的处理都将假定调度成功。您确定那是您想要的吗?