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 相关文章推荐
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
获取当前点击按钮的id用this.id实现
Mar 17 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
Apr 13 Javascript
Vue.js实现可配置的登录表单代码详解
Mar 29 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
Apr 28 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
如何在Node和浏览器控制台中打印彩色文字
Jan 09 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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实现有趣的人品测试程序实例
2015/06/08 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
window.open的功能全解析
2006/10/10 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
vue获取验证码倒计时组件
2019/08/26 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python中static相关知识小结
2018/01/02 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python元组的概念知识点
2019/11/19 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
Java中compareTo和compare的区别
2016/04/12 面试题
毕业生机械建模求职信
2013/10/14 职场文书
车辆转让协议书
2014/04/15 职场文书
经济管理专业求职信
2014/06/09 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
Python列表的索引与切片
2022/04/07 Python
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js
hive数据仓库新增字段方法
2022/06/25 数据库