Если запрос получен неудачным, очистите интервал - PullRequest
1 голос
/ 03 мая 2020

Я ищу решение для следующей проблемы: у меня запущена игра, и игра периодически получает состояние игры. Если пользователь выходит из игры, игра заканчивается. Но проблема в том, что игра по-прежнему отправляет запросы на размещение через заданный интервал.

Я ищу условие, например, если запрос на вставку не выполнен или что-то сбрасывает интервал.

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 Ответ

1 голос
/ 03 мая 2020

Вы можете вернуть обещание из getGameInfo и добавить функцию обратного вызова .catch, чтобы очистить интервал

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