ReactJS 和 Promise:那么如何在里面调用 catch 呢?

问题描述 投票:0回答:2

所以,我有一个动作创建者(它返回一个函数 - 我使用 redux-thunk)。在创建者返回的函数内,我调用调度方法并链接

then
catch
方法。 这是它的样子:

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

您看到那边的“GO TO CATCH”评论了吗?那么,我怎样才能从那里转到 catch 块呢? 谢谢!

javascript reactjs redux es6-promise redux-thunk
2个回答
4
投票
.then()

的主体跳转到下面的

.catch()
,最简单的方法就是抛出错误:

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

您抛出的错误将被传递到 
.catch()

的主体(在您的情况下为

err
变量)。

请注意,您的示例看起来已经很可疑:您的 catch 块正在捕获错误,然后

返回

,就好像错误是常规值一样,这意味着任何上游基于承诺的处理都将假定分派成功。你确定这就是你想要的吗?


0
投票

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); }); }, []);

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

© www.soinside.com 2019 - 2024. All rights reserved.