博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angularjs定时任务的设置与清除
阅读量:6985 次
发布时间:2019-06-27

本文共 770 字,大约阅读时间需要 2 分钟。

人们似乎常常将中 的$timeOut()  $interval()函数看做是一个内置的、无须在意的函数。但是,如果你忘记了$timeOut()$interval()的回调函数将会造成非常 不好的影响,你可能会因此遇到代码莫名其妙的出现问题,或者无端抛出一个错误甚至是一遍一遍的重复对的你的服务器进行$http请求这些诡异的情形。管理 好你的$timeOut/$interval定时器的小技巧就是在$destory事件中将它们取消。

和中原生的setTimeout()以及setInterval()函数不同,中 的$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);         })

 

转载于:https://www.cnblogs.com/gongshunkai/p/7227347.html

你可能感兴趣的文章
SpringBoot入门(三)——入口类解析
查看>>
Spring Boot系列——Spring Boot如何启动
查看>>
NIO之Charset类字符编码对象
查看>>
vue 父子组件传值的另外一种方式 provide inject
查看>>
关于ListBox在Grid中无法充满的问题
查看>>
【 Tomcat 】tomcat8.0 基本参数调优配置
查看>>
Android P的APP适配总结,让你快人一步
查看>>
Spring Boot 的 WEB 项目打包成的 JAR 包,打包成 docker 镜像基本步骤
查看>>
Table 'performance_schema.session_variables' doesn't exist
查看>>
WEB前端资源代码:PS记录
查看>>
WPF之托盘图标的设定
查看>>
查找字符是否存在列表中
查看>>
网络信息安全中最热门的果然是它
查看>>
C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC ...
查看>>
Git rebase使用
查看>>
Tetris in javascript[俄罗斯方块]
查看>>
Just Be
查看>>
一个感人的爱情故事(中英对照)
查看>>
【转载】大整数相乘
查看>>
Android 小项目之--Mini音乐播放器【简单版】(附源码)
查看>>