我的间隔不会在clearInterval

时间:2019-02-26 09:36:20

标签: javascript angularjs api setinterval clearinterval

我设置了一个重复间隔,以使用JavaScript中的setInterval检查对API的更新。我已经包括了最大的迭代次数以防止无限循环。但是,当达到最大值时,间隔将重复随机的额外次数。似乎如果将间隔号设置得较低,则“超调”的次数会增加。

我在这里做错什么了吗,还是这种“已知”行为?

RpcService.request('ping.set').then(function(res) {
  function myFunction() {
    var i = 0;
    var x = setInterval(function () {
      RpcService.request('ping.get').then(function(res) {
        $scope.ping = res.output;
        if (res.done === true || i >= 20) { // temporarily implemented to prevent an infinite loop
          clearInterval(x);
          setTimeout(function() {
            console.log('timeOut ready')
          }, 500);
          $scope.buttonVisibility = [0,1,1];
          $scope.buttonDisabled = [0,0,0];
        }
        i++;
        });
    }, 200);
  }
  myFunction();
});

0 个答案:

没有答案