Answer the question
In order to leave comments, you need to log in
Why is the server returning an incorrect result?
Hello. Faced the problem that the server returns incorrect data. Here is the action creator code:
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});
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question