Задать вопрос
string15
@string15
Учусь верстать руками

Не работает ajax в промисах?

Привет! Изучаю промисы, вроде все работает как мне нужно, но в конце не срабатывает ajax запрос!
Не пойму в чем дело?

export function getDocList(options) {
  // const url = 'data.json';
  const url =
    `http://192.168.235.188:9081/prototype/docList?clientName=${options.client}&Q=${options.period}&year=${options.year}`;

  return ((dispatch) => {
    dispatch({
      type: GET_DOCLIST_REQUEST,
      payload: 'Loading...'
    });

    axios.get(url, { crossdomain: true })
      .then((response) => {
        dispatch({
          type: GET_DOCLIST_SUCCESS,
          payload: response.data
        });
      })
      .catch((err) => {
        dispatch({
          type: GET_DOCLIST_FAILURE,
          payload: err
        });
      });
  });
}

//#################################################################################

   getDocs() {
    const dataObjForRequst = {
      client: this.props.clientIsChecked,
      year: this.props.yearIsChecked,
      period: this.props.periodIsChecked
    };

     this.props.receiveOnClick();
//Здесь в action происходит ajax запрос
     this.props.getdocList(dataObjForRequst);
  }

  changePeriodsOnPrev() {
    let promise = new Promise((resolve, reject) => {
      this.props.changePeriodsOnPrev();
      resolve("Работает!");
    });

    promise
      .then((result) => {
        this.getDocs();
    })
      .catch((err) => {
        console.log(err)
      });
  }


upd: Нашел решение, поменял местами вызовы

//Здесь в action происходит ajax запрос
     this.props.getdocList(dataObjForRequst);
     this.props.receiveOnClick();
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@sergealmazov
Ваша проблема в фундаментальном понимании как работают асинхронные операции. Изучайте основы, дальше поймете.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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