如果请求失败,则清除间隔

问题描述 投票:1回答:1

我正在寻找以下问题的解决方案:我有一个正在运行的游戏,并且游戏会定期获取游戏状态。如果用户注销,则游戏结束。但是问题是游戏仍然在设置的时间间隔内发送放置请求。

我正在寻找条件,例如是否提出要求失败或需要清除间隔的条件。

componentDidMount() {
let interval = setInterval(() => {
  this.getGameInfo(this.props.match.params.id);
}, 2000);
  if (this.getGameInfo(api get request) is unsuccessful(header not existent) { (pseudocode)
    clearInterval(interval)
  }

谢谢

javascript reactjs rest http put
1个回答
1
投票

您可以从getGameInfo返回一个Promise,并添加一个.catch回调函数以清除间隔

  componentDidMount() {
    let interval = setInterval(() => {
      this.getGameInfo(this.props.match.params.id).catch(() => {
        clearInterval(interval);
      });
    }, 2000);
  }
© www.soinside.com 2019 - 2024. All rights reserved.