使用setTimeout()轮询后从未调用过的函数

时间:2019-01-24 15:25:20

标签: javascript reactjs concurrency settimeout

我有一个React组件,它在操作成功后触发模态(5秒超时消失),但是我遇到了问题,因为模态不会触发更改状态并关闭状态的函数。我认为问题在于,我每2秒钟使用setTimeout()从API中获取数据,而我的模态函数永远不会离开堆栈(我测试过并且永远不会调用函数),有没有一种好的方法解决此问题而没有将我的模式的setTimeout的时间设置为小于获取数据的时间? 这是该函数的示例:

const fetchFunction = id => {
  fetchFile(id, response => {
    // If the current state is pending, we call this function in 2 seconds.
    if (condition) {
      setTimeout(() => {
        fetchFunction(id);
      }, 2000);
    } else if (response) {
      doSomething()
    }
  });
};

0 个答案:

没有答案