redux ReactJS和Promise:如何在内部调用catch?

laik7k3q  于 12个月前  发布在  React
关注(0)|答案(2)|浏览(116)

所以,我有一个action creator(返回一个函数-我使用redux-thunk)。在创建者返回的函数中,我调用一个dispatch方法并链接thencatch方法。如下所示:

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

字符串
你看到那边的GOTOCATCH注解了吗?那么,我怎么才能从那里转到catch块呢?
谢谢你,谢谢

im9ewurl

im9ewurl1#

如果你想从一个.then()的主体跳转到下面的.catch(),最简单的方法是抛出一个错误:

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

字符串
抛出的错误将传递给.catch()(在本例中为err变量)的主体。
请注意,你的例子看起来很可疑:你的catch块捕获了一个错误,然后 * 返回 * 它,就好像这个错误是一个常规值,这意味着任何上游基于promise的处理都将假设分派成功。你确定这是你想要的吗?

polhcujo

polhcujo2#

useEffect(()=> {

getDataFromWeather(city).then(res => {
        const data = res.data;
        setWeatherData(data);
        setLoading(false);

    }).catch((err) => {

        showAlert('Check Your City Name ', 'warning');
        setWeatherData(false);
        setshowCard(false);
        setLoading(true);

    });

}, []);

字符串
我在这段代码中遇到了一些错误,但我解决了

相关问题