$ interval不重复Angular中的任务

时间:2015-01-31 17:30:14

标签: javascript angularjs

我正在为我的网络应用编写测试,以便人们可以点击按钮,看到应用程序运行时带有一些随机生成的值。这是一个角度应用程序,该测试功能位于控制器内部。我试图减慢功能执行速度,因为如果我让它运行,我的服务器/浏览器就无法跟上。我试图使用$ interval来每隔500毫秒运行一次我的函数,但是我单击按钮它只运行一次,然后停止。

这是测试功能:

$scope.test = function (){
      console.log('in the test function')
      $interval($scope.sendData(), 500, 100)
}

这里是$ scope.sendData():

$scope.sendData = function () {
   console.log('send Data')
   var val1 = parseInt(Math.random()*1000)
   var val2 = parseInt(Math.random()*1000)
   var val3 = parseInt(Math.random()*1000)
   var val4 = parseInt(Math.random()*1000)
   var val5 = parseInt(Math.random()*1000)
   var val6 = parseInt(Math.random()*1000)
   var str = 'val1=' + val1 + '&val2=' + val2 + '&val3=' + val3 + '&val4=' + val4 + '&val5=' + val5 + '&val6=' + val6
   $http.get('http://localhost:3002/sendFootData?'+str)
}

我也尝试了setInterval和setTimeout,但它们没有减慢功能执行速度,我的浏览器也锁定了,因为它无法跟上服务器响应。

1 个答案:

答案 0 :(得分:2)

您需要将函数引用传递给$interval

$interval($scope.sendData, 500, 100);

如果您需要传递其他参数,可以使用其他匿名函数:

$interval(function() {
    $scope.sendData(param1, param2);
}, 500, 100);