Всем привет все мы знаем , что
const one = async () => { console.log(1) }
const two = async () => { console.log(2) }
one()
two() // Выведет 1 потом 2
У меня есть два функции ( r
edux thunk ) , обе ассинхронны ( ниже прилаживаю код )
export const loginUser = (data) => { // эта функция отрпавляет запрос на сервер и сетает токен в лс
return async function (dispatch) {
const token = await postLogin(data);
localStorage.setItem('token', JSON.stringify(token));
if (token) {
const decodedToken = jwt_decode(token);
dispatch(loginUserAC(decodedToken));
}
};
};
export const checkAuth = () => { // эта функция берёт токен из лс , и проверяет авт. ли юзер
let decodedToken = "";
return async function (dispatch) {
const token = JSON.parse(localStorage.getItem('token'));
if (token) {
decodedToken = jwt_decode(token);
}
dispatch(checkUserAuthAC(decodedToken));
};
};
я вызываю обе функции по клику
<button
onClick={() => {
setEmail("");
setPassword("");
dispatch(loginUser(data)); // должна отработать первее
dispatch(checkAuth()); // должна отработать позже
}}
type="button"
>
Войти
</button>
Но почему то
dispatch(loginUser(data));
выполняется быстрее ? Кто нибудь может подсказать что я делаю не так ? и как исправить данную ситуацию?