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 相关文章推荐
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
jquery基础教程之数组使用详解
Mar 10 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
Sep 06 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 Javascript
javascript关于“时间”的一次探索
Jul 24 Javascript
js回调函数原理与用法案例分析
Mar 04 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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下通过POST还是GET来传值
2008/06/05 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
JS的get和set使用示例
2014/02/20 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
python数据结构之列表和元组的详解
2017/09/23 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Python是什么 Python的用处
2020/05/26 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
个人简历中自我评价
2014/02/11 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers