博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实战Nodejs计时器的玩法
阅读量:6237 次
发布时间:2019-06-22

本文共 1492 字,大约阅读时间需要 4 分钟。

本身便使用了NodeJS做为开发语言,前端页面使用的是React技术。在做项目的时候一般都会用到计时器,在Nodejs中有两种计时器:SetTimeout 和 SetInterval。相对于定时器SetTimeout 和 SetInterval 的如何在指定时间之后执行被大家所熟悉来说,这两个系统函数的第三个参数可能有些同学还不是太清楚,我也是在做脉冲云的项目时发现的,现学现卖一下。

这两个函数的基本用法很简单,setTimeout是在指定时间之后执行一次函数体;setInterval是每过一段时间就执行一次,直到清除该定时器。应用如下:

//setTimeout

setTimeout(function(){

console.log("this is console.log");

},100);

//setTimeout 在100毫秒之后输出"this is console.log",定时器执行完毕;

//setInterval

let m = 1;

let t = setInterval(function(){

console.log(m);m++;if(m>10){    clearInterval(t);}

},100);

//setInterval 每100毫秒输出一次m的值,当m大于10,清除定时器,也就不再输出了。

其实定时器还可以有第三个参数,甚至第四第N个参数,当然N是不能大于函数所能接受的参数最大值的。

从第三个参数开始,包括第三个参数都将会当做定时器的回调函数的参数依次传入回调函数。

//setTimeout

setTimeout(function(l,m,n){

console.log(l,m,n);

},100 ,1,10,100);

//setTimeout 分别传入了第三四五个参数,在回调函数中也同时接收了三个参数,最终输出为

//1 10 100

//setInterval

let m = 1;

let s = setInterval(function(x,y,z){

console.log(x,y,z);m++;if(m>10){    clearInterval(s);}

},100,m,m10,m100)

//setInterval 也和setTimeout一样从第三个参数开始都会按顺序传入回调函数。

//须要注意的是如果外部参数是值类型,不论第三四五参数如何变化,

//回调函数所接收的参数只是第一次传入的值

//上面的console.log(x,y,z)输出将会是

//1 10 100

//1 10 100

//1 10 100

//1 10 100

//1 10 100

//1 10 100

//1 10 100

//但如果外部参数如果是引用类型,比如是一个obj,那么,每次执行时是可以得到不同的数据的,例如:

let m = {a:1};

let s = setInterval(function(x){

console.log(x);m.a++;if(m.a>10){    clearInterval(s);}

},100,m)

//那么,上面console.log(x)的输出将会是:

//{ a: 1 }

//{ a: 2 }

//{ a: 3 }

//{ a: 4 }

//{ a: 5 }

//{ a: 6 }

//{ a: 7 }

//{ a: 8 }

//{ a: 9 }

//{ a: 10 }

转载于:https://blog.51cto.com/13886290/2153099

你可能感兴趣的文章
mysql慢查询
查看>>
体会瞬间的舒爽
查看>>
我的友情链接
查看>>
关于网站访问出现的以下问题
查看>>
FFmpeg架构之其他重要数据结构的初始化
查看>>
List(二)
查看>>
Discuz论坛黑链清理教程
查看>>
committed access rate(CAR)承诺访问速率
查看>>
我的友情链接
查看>>
c#访问mysql数据库
查看>>
Postfix 邮件路由和传输研究
查看>>
Servlet学习小结
查看>>
“深入剖析WCF的可靠会话”系列[共8篇]
查看>>
装XP-呼唤可信的技术,呼唤可信的盘。
查看>>
中国***江湖之八大门派
查看>>
算法图解-动态规划
查看>>
Nginx 优化
查看>>
大家放弃XP,开始尝鲜吧……
查看>>
yii2 自动写入update_at,create_at字段
查看>>
PXE批量实现自动化安装系统
查看>>