vue下循环定时器只运行了一次的问题

clipboard.png

    let timer_this = this;
    function changeSendBtn () {
        if (sendTime<0){
            console.log('清除定时器');
            timer_this.sendBtnTitle = '发送验证码';
            clearInterval(timer_this.sendBtnTimer);
            return false;
        }
        timer_this.sendBtnTitle = sendTime+'s';
        sendTime--;
        console.log(sendTime)
    }
    this.sendBtnTimer = setInterval(changeSendBtn(),1000);

写了一个定时器,但是只运行一次,高手们帮我看下原因所在

阅读 7.3k
2 个回答

你单独运行下面这段代码看看
const test = () => {

let sendTime = 2
let sendBtnTimer = setInterval(changeSendBtn,1000)

function changeSendBtn() {
    if (sendTime<0){
        console.log('清除定时器');

        clearInterval(sendBtnTimer);
        return false;
    }

    sendTime--;
    console.log(sendTime)
}

}

去掉changeSendBtn后的()..
传入的应该是changeSendBtn函数 而不是 changeSendBtn () 执行后的返回值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题