取消多个angularjs $ timeout

时间:2015-11-15 01:13:39

标签: angularjs timeout

我正在使用角色。

我遇到$ timeout功能问题。  它是在ng-mousedown上启动的,所以如果我2次,它会设置2个计时器。我想避免。如何删除以前的计时器以仅保留最后一个计时器?代码如下:

      $scope.stopRefresh = function() { //ng-mousedown
      $interval.cancel(autoRefresh);
      restartRefresh = $timeout(function(){
      startRefresh();
    },30000);
    };

1 个答案:

答案 0 :(得分:1)

此代码应该有效:

$scope.stopRefresh = function() { //ng-mousedown
    $interval.cancel(autoRefresh); //I am not clear with the purpose of this line.

    if(restartRefresh){
        $timeout.cancel(restartRefresh);
    }
    restartRefresh = $timeout(function(){
        startRefresh();
    },30000);
};