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


Posted in Javascript onDecember 14, 2016

本文实例讲述了AngularJS定时器的使用与移除操作方法。分享给大家供大家参考,具体如下:

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

$timeout //实现的是延迟执行
$interval //实现的是定时器的效果

我们分别来看这两个服务

(1)timeout

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

var timer=$timeout(function(){
   console.log('hello world')
},2000);  //该函数延迟2秒执行
timer.then(function(){ console.log('创建成功')},
function(){ console.log('创建不成功')};

(2)interval

interval与timeout服务大同小异,创建定时器返回的也是一个promise对象。

var 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程序设计有所帮助。

Javascript 相关文章推荐
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
微信小程序  自定义创建详细介绍
Oct 27 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
微信小程序 获取session_key和openid的实例
Aug 17 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
layui弹出层按钮提交iframe表单的方法
Aug 20 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
vue实现简单瀑布流布局
May 28 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 #Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 #Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 #Javascript
bootstrap modal弹出框的垂直居中
Dec 14 #Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 #Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 #Javascript
bootstrap模态框实现拖拽效果
Dec 14 #Javascript
You might like
珊瑚虫IP库浅析
2007/02/15 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python通过post提交数据的方法
2015/05/06 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
一些Unix笔试题和面试题
2012/09/25 面试题
函授毕业生自我鉴定范文
2014/03/25 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
出售房屋委托书范本
2014/09/24 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
七一表彰大会简报
2015/07/20 职场文书
高中军训感想
2015/08/07 职场文书
2016年教代会开幕词
2016/03/04 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Python基础之变量的相关知识总结
2021/06/23 Python