美文网首页
setInterval()改写成setTimeout()

setInterval()改写成setTimeout()

作者: 是刘快啊 | 来源:发表于2018-05-24 18:52 被阅读0次

    setInterval()方法重复调用一个函数或执行一个代码段,在每次调用之间有固定的时间延迟。
    setTimeout()方法设置一个定时器,定时器到期后执行一个函数或一段代码。

    let n = 0
    let id = setInterval ( () => {
      n += 1
      console.log(n)
    }, 1000)
    

    上面代码每秒打印一次n。但是由于只读取一次时间延迟,设置好以后无法更改时间延迟。
    setTimeout()来改写setInterval()可以解决这个问题。

    let duration = 1000
    let n = 0
    let id = setTimeout( function runAgain(){
      n += 1
      console.log(n)
      setTimeout(runAgain, duration)
    }, duration)
    

    上面代码可以通过改变duration的值来改变时间延迟。setTimeout每次执行都会读取延迟时间,所以改变时间能立即生效。

    相关文章

      网友评论

          本文标题:setInterval()改写成setTimeout()

          本文链接:https://www.haomeiwen.com/subject/knasjftx.html