假设您请求登录 ,您可能被授权,被拒绝或出现错误。
函数实现:
const signIn = (email, password, callback) => async dispatch => {
try {
const { status, data } = await axios.post('/users/sign_in', { user: { email, password } });
if (!data.id) {
return callback.error('Something went wrong');
}
dispatch(fetchUser());
callback.success(data);
} catch (e) {
if (e.response.status === 401) {
callback.invalid(e.message, e);
} else {
callback.error(e.message, e);
}
}
};
致电:
signIn(email, password, {
success(data) {
console.log('success', data);
},
invalid(message, e) {
console.log('invalid', message);
},
error(message, e) {
console.log('error', message);
}
});
如您所见,它传递了具有不同方法的回调对象。
您能推荐一个更好的选择吗,也许在您有确切模型的地方使用 Promise ?