小程序setTimeout定时器

今天做小程序时,需要用到本地定时,果断使用settimeout这个函数

setTimeout(code,millisec)
参数    描述
code    必需。要调用的函数后要执行的 JavaScript 代码串。
millisec    必需。在执行代码前需等待的毫秒数。

于是代码是这样的

checkTime: function (time){
    console.log(time)
    time++
    var timer = setTimeout(this.checkTime(time),1000)
}

用起来忽然发现,一下子卡死了,死循环了吗?于是调啊调

checkTime: function (time){
    console.log(time)
    time++
    var timer = setTimeout(function(){
        this.checkTime(time)
    },1000)
}

使用这种方式,却发现提示这个

闭包找不到this吗?好办,试试that

checkTime: function (time){
    console.log(time)
    time++
    var that = this
    var timer = setTimeout(function(){
        that.checkTime(time)
    },1000)
}

成功搞定

还有一种写法

checkTime: function (time){
    console.log(time)
    time++
    var timer = setTimeout(res=>{
        this.checkTime(time)
    },1000)
}

最终使用了这种写法,方便

刘杨哥博客
请先登录后发表评论
  • 最新评论
  • 总共2条评论
刘杨哥博客

wenroule:我就试试

2018-04-10 16:19:01 回复

刘杨哥博客

wenroule:wo zenme 能发帖?

2018-04-10 16:17:49 回复

刘杨哥博客
  • 刘杨哥x 回复 wenroule:为啥不能发帖
  • 2018-04-10 16:18:55 回复
  • © 2014-2018 liuyangge.com 版权所有 ICP证:津ICP备15004811号-1
  • 联系邮箱:1009856694@qq.com