Node.js API详解之 timer模块用法实例分析


Posted in Javascript onMay 07, 2020

本文实例讲述了Node.js API详解之 timer模块用法。分享给大家供大家参考,具体如下:

Node.js API详解之 timer

timer 模块暴露了一个全局的 API,用于在某个未来时间段调用调度函数。
因为定时器函数是全局的,所以使用该 API 无需调用 require(‘timers')。
Node.js 中的计时器函数实现了与 Web 浏览器提供的定时器类似的 API,
它使用了一个不同的内部实现,它是基于 Node.js 事件循环构建的。

setImmediate(callback[, …args])

说明:

预定立即执行的 callback,不需要传递等待时间,在当前执行栈执行完毕后会立即执行setImmediate绑定的回调函数。
callback: 当前回合结束时要调用的函数
…args: 当调用 callback 时要传入的可选参数

demo:

setImmediate(() => {
 console.log('Immediate');
});

clearImmediate(immediate)

说明:

取消一个由 setImmediate() 创建的 Immediate 对象。
immediate: setImmediate() 返回的 Immediate 对象。

demo:

var immediate = setImmediate(() => {
 console.log('Immediate');
});
clearImmediate(immediate)

setInterval(callback, delay[, …args])

说明:

预定每隔 delay 毫秒重复执行的 callback。
callback: 定时器到点时要调用的函数。
delay: 调用 callback 之前要等待的毫秒数。delay 大于 2147483647 或小于 1 时,delay 会被设为 1。
…args: 调用 callback 时要传入的可选参数。

demo:

setInterval((str) => {
 console.log(str);
}, 1000, 'xiaoqiang');
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang

clearInterval(timeout)

说明:

取消一个由 setInterval() 创建的 Timeout 对象
timeout: setInterval() 返回的 Timeout 对象

demo:

var timeout = setInterval((str) => {
 console.log(str);
}, 1000, 'xiaoqiang');
clearInterval(timeout);

setTimeout(callback, delay[, …args])

说明:

预定在 delay 毫秒之后执行的单次 callback。
callback: 定时器到点时要调用的函数。
delay: 调用 callback 之前要等待的毫秒数。delay 大于 2147483647 或小于 1 时,delay 会被设为 1。
…args: 调用 callback 时要传入的可选参数。

demo:

setTimeout((str) => {
 console.log(str);
}, 1000, 'xiaoqiang');
//xiaoqiang

clearTimeout(timeout)

说明:

取消一个由 setTimeout() 创建的 Timeout 对象
timeout: setTimeout() 返回的 Timeout 对象

demo:

var timeout = setTimeout((str) => {
 console.log(str);
}, 1000, 'xiaoqiang');
clearTimeout(timeout);

timeout.unref()

说明:

当调用此方法时,说明定时器不要求事件循环保持活动状态,在callback执行之前如果没有其他任务保持事件循环活跃,
则Node进程退出,callback不会执行。
setTimeout(),setInterval()方法返回的Timeout对象都具有此方法。

demo:

var timeout = setTimeout((str) => {
 console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
//进程立马退出,不会执行callback

timeout.ref()

说明:

当调用此方法时,说明定时器要求事件循环保持活动状态。所有定时器默认都会保持事件循环的活动状态,所以不需要单独调用此方法。
除非之前使用timeout.unref()更改了默认值。

demo:

var timeout = setTimeout((str) => {
 console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
timeout.ref()
//xiaoqiang

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
javascript eval函数深入认识
Feb 21 Javascript
JavaScript性能陷阱小结(附实例说明)
Dec 28 Javascript
JS简单循环遍历json数组的方法
Apr 22 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
BootstrapValidator超详细教程(推荐)
Dec 07 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
js实现简单数字变动效果
Nov 06 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
vue router的基本使用和配置教程
Nov 05 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
何时使用Map来代替普通的JS对象
Apr 29 Javascript
JS面试题中深拷贝的实现讲解
May 07 #Javascript
javascript 代码是如何被压缩的示例代码
May 06 #Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 #Javascript
Vue SSR 即时编译技术的实现
May 06 #Javascript
深入webpack打包原理及loader和plugin的实现
May 06 #Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 #Javascript
让IDE识别webpack的别名alias的实现方法
May 06 #Javascript
You might like
PHP 工厂模式使用方法
2010/05/18 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
Javascript实现打鼓效果
2021/01/29 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python二分法实现实例
2013/11/21 Python
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python dumps和loads区别详解
2020/02/04 Python
python圣诞树编写实例详解
2020/02/13 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
幼儿如何来做好自我评价
2013/11/05 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
幼师自我鉴定
2014/02/01 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
学生实习证明范文
2014/09/28 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Java基础-封装和继承
2021/07/02 Java/Android