Вложенный вызов AJAX в React redux

#json #ajax #reactjs #redux

#json #ajax #reactjs #redux

Вопрос:

Итак, я работаю над некоторой демонстрацией, и у меня есть два вызова AJAX, первый — это просто дата последнего изменения, чтобы сообщить мне, следует ли извлекать данные из второго. Это работает, но я чувствую, что есть более разумный способ сделать это для реальных приложений, и я просто пользовательская обезьяна, пытающаяся придумать мир, любой совет очень ценится.

     componentDidMount() {
      this.getJson();
      setInterval(this.getJson.bind(this), 1000);
    }

    getJson() {
      const el = this;
      const isModified = (date) => {
        let mod = false;
        if (this.state.lastModified == date) {
          console.log('no change');
        } else {
          mod = true;
          console.log({
            'previously modified': this.state.lastModified,
            'newly modified': date
          });
          el.setState({lastModified: date});
        }
        return mod;
      }

      this.serverRequest = $.ajax({
        url: 'URL_LAST_MODIFIED',
        success: function(result) {
          const lastModified = $.parseJSON(result).LastModifiedDateTime;
          if (isModified(lastModified)) {
            $.ajax({
              url: 'URL_DATA',
              success: function(result2) {
                const result2Obj = $.parseJSON(result2);
                el.setState({data: result2Obj});
              },
              error: function(xhr, status, err) {
                alert(err.toString());
              }
            })
          }
        },
        error: function(xhr, status, err) {
        }
      });
    }
  

Ответ №1:

Я думаю, что это связано с этим:https://github.com/reactjs/redux/issues/1676

Идея заключается в том, чтобы создать действие для первого вызова ajax … и при успешном выполнении отправить другое действие для выполнения второго вызова.