我想将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',请问我该如何解决这个问题呢?
angular1.x中的setTimeOut.cancel是angularjs做的一次封装,angular2以上直接使用window的clearTimeout()或clearInterval()去取消