@stepan132

Почему сервер возвращает неверный результат?

Здравствуйте. Столкнулся с проблемой того, что сервер возвращает некорректные данные. Вот код 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});
    }
}

то есть сервер как будто не успевает обновить значение и отсылает старое. Как можно решить эту проблему? Заранее спасибо.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@stepan132 Автор вопроса
Проблема была в том, что браузер кешировал результат, получаемый с сервера, поэтому результат приходил не верный
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы