Angularjs 如何每10秒调用一次函数?

Angularjs 如何每10秒调用一次函数?,angularjs,Angularjs,如何每10秒调用一次函数$timeout和setTimeout只调用函数dataTime一次,我想不断重复这一点,没有结束 angular .module('sfcLeftSiteBar') .component('leftSiteBar', { templateUrl: '/Panel/LeftSiteBar/Templates/_leftSiteBar.html', controller: ['$http', '$window', '$state', '$scope',

如何每10秒调用一次函数
$timeout
setTimeout
只调用函数
dataTime
一次,我想不断重复这一点,没有结束

 angular
.module('sfcLeftSiteBar')
.component('leftSiteBar', {
    templateUrl: '/Panel/LeftSiteBar/Templates/_leftSiteBar.html',


    controller: ['$http', '$window', '$state', '$scope', '$timeout', function ($http, $window, $state, $scope, $timeout) {

      function dataTime() {
            $http.post('/LeftSiteBar/TimeProvider').then(function (result) {

                console.log("czas" + JSON.stringify(result))
                $scope.datatime = result.data;
                console.log("czas2" + JSON.stringify($scope.datatime))
            })


        }



        // $timeout(dataTime, 10000);

      setTimeout(dataTime, 10000);


        }]
})

您可以使用
setInterval
代替
setTimeout
,如下所示:

var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
setInterval(数据时间,10000)

为了能够在以后清除间隔,您需要将
setInterval
的返回值指定给一个变量,然后使用您的间隔作为参数调用
clearInterval
,如下所示:

var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
但是由于您使用的是
AngularJS
,因此可以使用内置的interval方法来处理调用函数中可能发生的任何更改,并自动触发摘要循环

var angulainterval=$interval(数据时间,10000)

然后像这样取消它:


$interval.cancel(angularInterval)

您可以使用
setInterval
而不是
setTimeout
,如下所示:

var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
setInterval(数据时间,10000)

为了能够在以后清除间隔,您需要将
setInterval
的返回值指定给一个变量,然后使用您的间隔作为参数调用
clearInterval
,如下所示:

var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
但是由于您使用的是
AngularJS
,因此可以使用内置的interval方法来处理调用函数中可能发生的任何更改,并自动触发摘要循环

var angulainterval=$interval(数据时间,10000)

然后像这样取消它:


$interval.cancel(angularInterval)

Angularjs有一个内置的
$interval
,您应该使用它而不是常规的
setInterval

controller: ['$interval', '$scope', function($interval, $scope) {
  function dataTime() {
    console.log('function works');
  }

  // start interval 
  var interval = $interval(dataTime, 10000);

  // call this method to stop interval
  $scope.stop = function() {
    $interval.cancel(interval);
  };
}

关于Angularjs的更多信息有一个内置的
$interval
,您应该使用它而不是常规的
setInterval

controller: ['$interval', '$scope', function($interval, $scope) {
  function dataTime() {
    console.log('function works');
  }

  // start interval 
  var interval = $interval(dataTime, 10000);

  // call this method to stop interval
  $scope.stop = function() {
    $interval.cancel(interval);
  };
}

有关

的更多信息,请使用angularjs
$interval
服务处理该问题。它是一种角度服务,并随应用程序提供所需的一切

      stop = $interval(function() {
        dataTime();
      }, 100);
如果需要,还可以取消连续执行

      if (angular.isDefined(stop)) {
        $interval.cancel(stop);
        stop = undefined;
      }

使用angularjs
$interval
服务来处理这个问题。它是一种角度服务,并随应用程序提供所需的一切

      stop = $interval(function() {
        dataTime();
      }, 100);
如果需要,还可以取消连续执行

      if (angular.isDefined(stop)) {
        $interval.cancel(stop);
        stop = undefined;
      }

单击按钮等待3秒钟,然后警告“你好”

单击关闭警报框后,3秒钟后将出现一个新的警报框。这将永远持续下去

试试看 函数myFunction(){ setInterval(函数(){alert(“Hello”);},3000); }

单击按钮等待3秒钟,然后警告“你好”

单击关闭警报框后,3秒钟后将出现一个新的警报框。这将永远持续下去

试试看 函数myFunction(){ setInterval(函数(){alert(“Hello”);},3000); }
使用
setInterval
而不是
setTimeout
。检查此示例的$interval。谢谢plunker,但我必须从后端花费时间。可能重复使用
setInterval
而不是
setTimeout
。检查此示例的$interval。谢谢plunker,但我必须从后端花费时间。可能重复of$interval只是window.setInternal的一个包装器,但我仍然认为我们应该使用它。它是的,但是添加了知道interval函数所做的任何范围更改的功能。基本上,
$interval
将触发Angular的摘要循环,而
setInterval
不会。您应该将所有这些添加到您的答案中。$interval只是window.setInternal的包装器,但我仍然认为我们应该使用它。它是的,但添加了一个功能,即知道interval函数所做的任何范围更改。基本上,
$interval
将触发Angular的摘要循环,而
setInterval
不会。您应该将所有这些添加到回答中。您需要最终取消该间隔。您需要最终取消该间隔。此答案不正确。需要澄清的是,在AngularJS中,应该使用
$interval
而不是其他回答中解释的
setInterval
。请再次阅读我的评论。我没有说不对。我说的不正确(完全相反)这个答案不正确。需要澄清的是,在AngularJS中,应该使用
$interval
而不是其他回答中解释的
setInterval
。请再次阅读我的评论。我没有说不对。我说的没错(完全相反)