同学你好,我在本地运行你的代码是可以的,实现的是获取验证码倒计时60秒,能不能把你的问题说详细点,不过在运行你代码的时候发现的几个问题:
1. 第一次启动正常但是在第二次启动的时候就出现问题了,在时间没结束时会创建多个定时器更改seconds的值,
2. 当时间结束之后再次点击时间没有从59开始。
你可以把定时器定义成data的一个属性,默认为空,每次点击获取验证码的时候判断this.timer是否存在,只有为空的时候才执行定时器的内容。等执行完毕之后在恢复默认值就好了。第二个问题是在定时器结束的时候需要将时间恢复为59不然第二次执行的时候就是从0开始的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | countDown () {
if (! this .timer) {
this .isSend = true
this .timer = setInterval(() => {
this .seconds--
if ( this .seconds === 0) {
clearInterval( this .timer)
this .timer = ''
this .seconds = 59
this .isSend = false
}
}, 1000)
}
}
|
如果不能解决你的问题,可以继续追问。