定时器的使用和传参问题

379 阅读1分钟

计时器的使用

  1. setTimeOut(fn, time) time毫秒之后,只执行一次

  2. setInterval(fn, time) 重复的无限次数的执行,在关闭定时器之前,每隔time毫秒就执行一次,执行无数次

  3.  计时器的使用有两种写法
     function ccc() {
         console.log(555);
       }
     setTimeout(ccc,1000)
     或者
     setTimeout(()=>{
        ccc()
     },1000)
     
    

计时器怎么传参

  1. 直接调用的方法后面传递参数(不可行)

    //能获取到参数,但是会立即执行一次,而不是在1s后执行,没有定时器的效果了,不可取
    setTimeout(setTime('小明'), 1000)
    function setTime(name) {
      console.log('定时器执行并且接收参数:', name)
    }
    
  2. 简单方便的传参(可行)

    //查看nodejs文档可知,回调函数的参数可以通过定时器的后面的参数直接传递,多个参数用“,”拼接。
    setTimeout(setTime, 1000, 12, '路西')   // setTimeout(setTime, 1000, '参数1', '参数2’, ...) 
    function setTime(num, name) {
      console.log('定时器执行并且接收参数:', num, name)
    }
    
  3. 通过闭包的方式接收参数(可行)

    setTimeout(setTime('小明'), 1000)
    function setTime(name) {
      return () => {
        console.log(name)
      }
    }