angularjs的$interval.cancel如何在angular5中使用
我想将AngularJS专案升级成Angular5,并且能透过计时器每隔一段时间刷新页面的数据
以下代码在AngularJS能顺利运行但无法在Angular5中运行
quitTalkingWDT(){
if(this.talkingWDT){
$interval.cancel(this.talkingWDT)
this.talkingWDT = null
this.wait4DataStartTS = 0
}
}
kickTalkingWDT(){
this.quitTalkingWDT()
this.talkingWDT = $interval(function(){
if (!this.currDevice || (this.wait4DataStartTS === 0)){
this.quitTalkingWDT()
return
}
this.isStillTalking()
},500)
}
我改使用setTimeout
quitTalkingWDT(){
if(this.talkingWDT){
setTimeout.cancel(this.talkingWDT)
this.talkingWDT = null
this.wait4DataStartTS = 0
}
}
kickTalkingWDT(){
this.quitTalkingWDT()
this.talkingWDT = setTimeout(function(){
if (!this.currDevice || (this.wait4DataStartTS === 0)){
this.quitTalkingWDT()
return
}
this.isStillTalking()
},500)
}
但setTimeout似乎没有属性'cancel',请问我该如何解决这个问题呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
angular1.x中的setTimeOut.cancel是angularjs做的一次封装,angular2以上直接使用window的clearTimeout()或clearInterval()去取消