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 null undefined 空区别说明
Jun 13 Javascript
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
vue自定义指令directive实例详解
Jan 17 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
Aug 17 Javascript
js实现简单的贪吃蛇游戏
Apr 23 Javascript
JavaScript WeakMap使用详解
Feb 05 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中fgetcsv()函数用法实例
2014/11/28 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
个人租房协议书
2014/11/28 职场文书
聘任证明怎么写
2015/03/02 职场文书
学校教师培训工作总结
2015/10/14 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL