AngularJS定时器的使用与移除操作方法【interval与timeout】

1.相比较于JS中setTimeInterval和setTimeout,AngularJS中通过$interval来实现定时器的效果,通过$timeout来实现时间延迟

(1)$timeout //实现的是延迟执行

            $timeout相当于JS原生里面的延迟执行,不同的是该服务的函数返回的是一个promise对象。

               $scope.timer=$timeout(function(){

                     console.log('hello world')

                },2000);  //该函数延迟2秒执行

                timer.then(function(){ console.log('创建成功')},

                function(){ console.log('创建不成功')};

(2)$interval //实现的是定时器的效果

              $scope.timer=$interval(function(){

                 console.log('hello world')

             },2000);  //间隔2秒定时执行

             timer.then(function(){ console.log('创建成功')},

             function(){ console.log('创建不成功')};

2.如何移除定时器

        在angularJSo中,特别是在页面切换或者说是路由切换的时候,我们需要移除响应的定时器,我们可以通过on方法,监听路由切换时间。当DOM结构发生变化时,会执行on方法:

$scope.$on('$destroy',function(){

  $interval.cancel($scope.timer);

}) //在控制器里,添加$on函数

你可能感兴趣的:(AngularJS定时器的使用与移除操作方法【interval与timeout】)