如果获取请求失败,请清除间隔

时间:2020-05-03 17:56:51

标签: javascript reactjs rest http put

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

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

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)
  }

谢谢

1 个答案:

答案 0 :(得分:1)

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

  componentDidMount() {
    let interval = setInterval(() => {
      this.getGameInfo(this.props.match.params.id).catch(() => {
        clearInterval(interval);
      });
    }, 2000);
  }