我有一个简单的功能来注销(仅用于测试),并且我想在操作完成时通知用户。首先想到的是用承诺来做到这一点。Redux返回承诺
我这样试过,但是有些问题。我不太了解这些工作。我能够这样做吗?还是会有更好的方法?
功能
logOut =() => {
this.props.logoutUser().then((passed) => {
if (passed) {
alert("You are now logged out!");
}
});
};
注销行动
export function logoutUser() {
return dispatch => {
new Promise(function (resolve, reject) {
dispatch(logout()).then((response) => {
return true;
}).catch((error) => {
return false;
});
});
}
}
function logout() {
return {
type: "LOGOUT"
}
}
你的方法是正确的。确保你使用的是“thunk”中间件,并且你的thunk返回Promise。 –
我应该有thunk工作,因为我将其与包含“fetch”的其他操作一起使用。这一次我想不使用'fetch'来使用它:) –
虽然这是同样的方法,因为'fetch'也返回一个Promise。如果你的thunk会返回Promise,你可以在组件中使用它('return new Promise ...')。 –