实战Nodejs计时器的玩法

脉冲云平台本身便使用了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 }

原文地址:http://blog.51cto.com/13886290/2153099

时间: 2024-10-15 23:52:00

实战Nodejs计时器的玩法的相关文章

北京赛车走势技巧实战精准跟号玩法

希望大家踊跃来交流探讨                                                              北京赛车走势技巧 解锁北京赛车六七八码 北京赛车各种玩法分析 实力团队引领北京赛车之路 北京赛车这个游戏首先我们要学会看点走势,老是跟计划是不行的,跟到热门号,那么侥幸赚了点,跟到挂的那么就是直接下海,下面介绍分析下小技巧方面 个人经验,计划只许参考不能盲目 我给大家举例一种玩法 六码玩法 六码本来就有60%的机会,在加上抓出热门,在从热门找出热码,基

windows下mongodb基础玩法系列二CURD附加一

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下mongodb基础玩法系列二CURD附加一 说在前面的话 在系列二中CURD只是简单的走了一下代码操作的流程,其中全是简单基础操作的内容, 在我仔细看完接下来的内容后决定再丰富一下前面的操作,并实战一个简单的demo出来,demo具体搭配语言暂时决定在PHP与nodejs之间. 增加内容至文档没说完

[C#] 软硬结合第二篇——酷我音乐盒的逆天玩法

1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下一曲或是找个好听的歌来听...但是,[移动手锁定鼠标-->移动鼠标关闭当前页面选择音乐软件页面-->选择合适的音乐-->恢复原来的界面] 这一过程也会烦人不少,如果说软件的设计要在用户体验上做足功夫,感觉这一点是软件设计人员很难管住的方面,毕竟操作系统也就这样安排的嘛(当然,有些机智的开发人

js类型转换的各种玩法

前言 对于object和number.string.boolean之间的转换关系 [ ] Object 与Primitive,需要Object转为Primitive [ ] String 与 Boolean,需要两个操作数同时转为Number. [ ] String/Boolean 与 Number,需要String/Boolean转为Number. [ ] undefined 与 null ,和所有其他值比较的结果都是false,他们之间==成立 ToPrimitive是指转换为js内部的原始

AB实验的高端玩法系列2 - 更敏感的AB实验, CUPED!

背景 AB实验可谓是互联网公司进行产品迭代增加用户粘性的大杀器.但人们对AB实验的应用往往只停留在开实验算P值,然后let it go...let it go ... 让我们把AB实验的结果简单的拆解成两个方面: \[P(实验结果显著) = P(统计检验显著|实验有效)× P(实验有效)\] 如果你的产品改进方案本来就没啥效果当然怎么开实验都没用,但如果方案有效,请不要让 statictical Hack 浪费一个优秀的idea 如果预期实验效果比较小,有哪些基础操作来增加实验显著性呢? 通常情

【精品】北京赛车计划冠军定位玩法技巧

車車是一種投資,我們的目標是:細水長流,見好就收,不求日金千金,只求長期穩定!許多人賠本的原因:1. 資金不足,卻大把下注,跟到第4期不出,錢不夠了,心慌了.有人孤注一擲,衝到第5期中了,嚇的半死.有人不敢跟,第5期出號了,氣死, 然後再跟新計劃,沒錢了,郁悶死.這兩種做法都不對,既然是以投資的心態做事,就應該計劃好翻倍的本錢,做到99%的穩賺,狀況不對就要及時止損. 看著連續中,就是不敢跟,最後咬牙跟了,馬上挂了.于是開始哭,我運氣咋這麽差.不買就中,一買就挂.相反,有些人專門等挂,一挂就上,

Aircrack除破解WiFi密码外的趣味玩法

Aircrack这种屌爆了的攻击测试套件在网上居然只有用它破解WiFi密码的教程,在这里我来扒个冷门,介绍下这款杀器的其他一些有趣的玩法. 0×00:首先你需要一张usb无线网卡 ifconfig查看可以正常识别,如果不行看这里. 0×01:干坏或者不坏的事情前先修改MAC ifconfig [INTERFACE] down#关闭网卡 #[INTERFACE]是指你的无线网卡,一般为wlan0,下不再说明 macchanger -m [MAC] [INTERFACE]#修改MAC,[MAC]是你

关于摇红包 | 必须知道的几种玩法

逢年过节,搞活动 微信红包,摇一摇 佰睿科技摇摇啦应用平台提供各种摇红包玩法 [玩法一]:摇一摇红包 功能简介:这种玩法与16年春节微信官方搞的摇红包活动功能一样,采用ibeacon蓝牙技术,通过"微信摇一摇周边"入口参与活动,用户打开手机蓝牙,摇一摇即可领取现金红包并且可以强制/默认用户关注公众号,所获得的红包金额直接转入用户零钱包,支持设置固定/随机金额红包,可限定参与活动用户,支持领取红包后自定义广告跳转,可设定中奖概率. 功能特点:优化了用户操作层级,红包金额直接转入用户零钱包

黑客玩法,插上你的专有U盘才能开机

这个玩法的效果是这样的: 1.插上你的专有U盘,按电脑开机按钮,电脑正常启动运行: 2.如果不插专有优U盘,按电脑开机按钮,进入桌面后1秒钟电脑自动关机,无法使用.也就是说,没有优U盘将无法使用你的电脑. 下面教你如何实现上面的玩法: 第一步:在自己的U盘(假设是F盘)里,新建一个文本文件,内容可以为空,另存为"密码U盘.txt"文件. 第二步:在电脑的D盘里,新建一个文本文件,编辑该文本文件,文本文件内容如下: @echo off if not exist F:\密码U盘.txt s