脉冲云之实战Nodejs计时器的玩法
来源:互联网 发布:手机申请淘宝账号 编辑:程序博客网 时间:2024/06/05 00:14
脉冲云是一个开发流程效率提高工具,快速的编译构建、简洁的服务器部署,轻松的服务器集群管理,可以及大的提高开发人员的开发效率.。
那么脉冲云使用了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,m*10,m*100)
//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 }
那么脉冲云使用了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,m*10,m*100)
//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 }
阅读全文
0 0
- 脉冲云之实战Nodejs计时器的玩法
- 脉冲云之react,redux,react-redux实战演练
- 安卓实战项目之制作简单的计时器
- 脉冲云之项目管理方法
- 脉冲云之持续集成(上篇)
- 脉冲云之持续集成(下篇)
- 脉冲云--解决DevOps人员的'痛'
- 脉冲云中使用的ajv
- Akita与脉冲云的关系
- 实战Excel Add-in的三种玩法
- 象棋的升级玩法之智勇双全
- xs128TIM之脉冲累加
- nodejs实战express之使用Markdown
- Nodejs爬虫实战项目之链家
- 脉冲星的脉冲轮廓和周期
- NodeJS实战
- 脉冲序列的检测
- 脉冲神经网络的五脏六腑
- 欢迎使用CSDN-markdown编辑器
- Mac 使用ab性能测试工具
- LeetCode 104. Maximum Depth of Binary Tree
- linux下配置两个tomcat实例
- LeetCode 107. Binary Tree Level Order Traversal II
- 脉冲云之实战Nodejs计时器的玩法
- Python 备份文件
- 时间间隔分钟数计算
- 安卓再按一次退出程序(Activity)
- MySQL学习笔记
- Spring boot jdbc 自定义SQL查询
- UE4 X HTC Vive游戏开发笔记(二)
- 安装pods时候遇到的一个小坑。
- Java的守护线程与非守护线程