angularjs定时任务之装与消除

众人似乎常常用AngularJS中
的$timeOut()
 $interval()函数看做是一个坐的、无须在意的函数。但是,如果您忘记了$timeOut()$interval()的回调函数将会见招很
不好的熏陶,你可能会见因此遇到代码莫名其妙的起问题,或者无故抛来一个荒唐还是均等满一律满的又对之君的服务器进行$http请求这些奇妙的景况。管理
好您的$timeOut/$interval定时器的有些技巧就是当$destory事件中将它取消。

和JavaScript中原生的setTimeout()以及setInterval()函数不同,angularjs中
的$timeOut()函数会返回一个promise。和任何的promise一样,你可以绑定$timeOut的resolved和rejected时
间。然而又主要之是,你可经过以这个promise传递给$timeOut.cancel()方法来取消掉潜在的定时器。

安定时任务,给定时任务由一个名字time_upd,为之凡便于清理的时光一直调用名称。

 

var timeout_upd = $interval($scope.upd_data ,6000);  

 

只顾:设置的下$interval(fn ,time);第一个参数fn
不可知写“()”,只能写$scope.方法名称。第二独参数是定时执行的年月距离,单位为毫秒。

排除定时任务,AngularJS将见面在scope中触发$destory事件。这给咱们可出时机来cancel任何秘密的定时器。

 

    $scope.$on('$destroy',function(){  
           $interval.cancel(timeout_upd);  
       })  

 

相关文章