定时器的设置和清除setTimeout、setInterval、setImmediate-NodeJs

JS是单线程运行逻辑,所有的程序默认在一个线程执行,出现排队执行。所有的定时器中,回调函数会在主线程后事件队列中执行。

1、一次性定时器set/clearTimeout()

             一次性定时器的开启:当间隔时间到了,会调用一次回调函数,间隔时间的单位是毫秒。

              var timer=setTimeout(回调函数,间隔时间)。

                一次性定时器的清除 / 清除已经开启的定时器:clearTimeout(timer)

  // 开启:3000毫秒以后,会调用函数
        var timer = setTimeout(function(){
            console.log('boom')
        } ,3000)
        console.log('结束')

  // 清除
        clearTimeout(timer)

2、周期性定时器

         周期性定时器的开启:每隔一段时间,就会调用一次回调函数,间隔时间的单位也是毫秒。(循环)

        var timer = setInterval(回调函数, 间隔时间)

        清除开启的周期性定时器:clearInterval(timer);

var timer = setInterval(() => {
    console.log('滴滴滴')
}, 3000)
console.log('结束')

// 清除
clearInterval(timer)

3、立即执行定时器

        立即执行定时器的开启:

        var timer = setImmediate(回调函数)

        清除开启的立即执行定时器:clearImmediate(timer)

       process.nextTick(回调函数): 开启后,没有清除的方法。

console.log(2)
setImmediate(() => {
    console.log(1)
})
process.nextTick(() => {
    console.log(4)
})

console.log(3)

//最后的结果是2 3  4 1;

//因为所有的定时器中,回调函数会在主线程后事件队列中执行。而这儿打印2和3是主线程,就先打印2和3,

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值