Почему эта функция setInterval не очищается сразу - PullRequest
0 голосов
/ 22 ноября 2018

См. Следующий код.Ожидаемое поведение будет состоять в том, чтобы увидеть единственное «100» в консоли, а затем ничего больше, поскольку интервал очищается.Однако на самом деле он записывает между 2-3'100 каждый раз перед очисткой.Почему интервал не очищается сразу?

var endpoint = "https://example.com";
axios
  .post()
  .then(function(response) {
    var timerId = setInterval(function() {
      axios
        .get(endpoint + response.data.url)
        .then(function(response) {
          console.log(response.data.percentageComplete);
          if (response.data.percentageComplete == 100) clearInterval(timerId);
        })
        .catch(function(error) {});
    }, 1000);
  })
  .catch(function(error) {});

1 Ответ

0 голосов
/ 22 ноября 2018

Поскольку вы очищаете его после успешного завершения HTTP-запроса, и этот запрос может занять несколько секунд.В то же время один или два из этих запросов запускаются на setInterval.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...