所以,我有一个动作创建者(它返回一个函数 - 我使用 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 块呢? 谢谢!
.then()
的主体跳转到下面的
.catch()
,最简单的方法就是抛出错误:throw new Error('I meant to blow up here.');
您抛出的错误将被传递到
.catch()
的主体(在您的情况下为
err
变量)。请注意,您的示例看起来已经很可疑:您的 catch 块正在捕获错误,然后返回
,就好像错误是常规值一样,这意味着任何上游基于承诺的处理都将假定分派成功。你确定这就是你想要的吗?
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);
});
}, []);
我在这段代码中遇到一些错误,但我解决了