AngularJSangularjs定时职责的设置与消除

人人就如平日将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);  
       })  

 

相关文章