Здравствуйте. Столкнулся с проблемой того, что сервер возвращает некорректные данные. Вот код action creator`а:
export let rateFilm = (sessionId, filmId, rating) => async (dispatch) => {
try {
let response = await service.rateFilm(sessionId, filmId, rating); //ставим рейтинг фильму
if (response.status_code !== 1 && response.status_code !== 12 && response.status_code !== 13) throw new Error('Что-то пошло не так, попробуйте позже'); //Выкидываем ошибку, если ответ от сервера содержит ее
//сама ошибка:
let filmStates = await service.getMovieAccountStates(filmId, sessionId);
//после обращения к серверу мы берем поставленный рейтинг фильма с сервера (приходит старое значение)
console.log(filmStates); //Выводит старый рейтинг
dispatch({type: 'SET_FILM_STATES', payload: filmStates}); //сюда приходит старый рейтинг
//Но после обращения к серверу через 3 секунды, рейтинг фильма успел обновиться и является корректным
setTimeout(async () => {
let filmStates = await service.getMovieAccountStates(filmId, sessionId);
console.log(filmStates); //Выводит корректный (новый) рейтинг
}, 3000);
} catch (err) {
dispatch({type: 'SET_FILM_STATES_ERROR', payload: err.message});
}
}
то есть сервер как будто не успевает обновить значение и отсылает старое. Как можно решить эту проблему? Заранее спасибо.