尝试设置多个异步React-Redux调用

时间:2017-08-22 13:47:48

标签: javascript reactjs redux react-redux redux-thunk

我有一个应用程序工作,它使用Redux和thunk来从API获取数据。这很棒!

获取第一页后,我也想获取第2,3和4页。我在item对象下的商店中将第2页添加到第1页。并将3和4放在一个名为reserveItems的缓存中,以便在用户开始滚动时为用户做好准备。我遇到的麻烦是由于Javascripts异步性质,代码超过了所有增量,所有4个获取请求最终都是针对第1页。

我以为我可以通过某种方式使用承诺解决这个问题,但是我无法让它工作,我如何访问promises中的道具和下面的then()链?

不知何故,我使用了javascript和thunk错误。我认为使用thunk可以解决异步调用的问题,但是我无法解决我的函数和文件中的问题。

这是我当前的一系列功能,需要在用户开始搜索时调用。

    this.props.setPage(page);
    this.props.statsFetchData(this.props.keyword);
    this.props.itemsFetchData(this.props.keyword, this.props.page);
    this.props.incrementPage();
    this.props.itemsFetchData(this.props.keyword, this.props.page);
    this.props.incrementPage();
    this.props.reserveItemsFetchData(this.props.keyword, this.props.page);
    this.props.incrementPage();
    this.props.reserveItemsFetchData(this.props.keyword, this.props.page);

这是项目操作:https://pastebin.com/ih4TXsSD

这是减少物品的物品:https://pastebin.com/p2ZvLpTn reserveItems reducer看起来基本相同。

这是我对使用承诺的考验:

    const setup = new Promise(function() {
        this.props.setPage(page);
    });

    setup.then(function() {
       this.props.itemsFetchData(this.props.keyword, this.props.page);
    }).then(function() {
        this.props.incrementPage();
    }).then(function() {
        this.props.itemsFetchData(this.props.keyword, this.props.page);
    });

0 个答案:

没有答案