在React redux中嵌套的AJAX调用

时间:2016-10-19 21:32:05

标签: json ajax reactjs redux

所以我正在做一些demoware,我有两个AJAX调用,第一个是最后修改日期,让我知道是否从第二个获取数据。这是有效的,但我觉得有一个更聪明的方法来为真正的应用程序做这个,我只是一个试图在世界上出现的UI猴子,任何建议都非常感激。

    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 个答案:

答案 0 :(得分:1)

我认为这是事实: https://github.com/reactjs/redux/issues/1676

这个想法是为第一个ajax调用创建一个动作......并且在成功时调度另一个动作来执行第二个调用。