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 13 Javascript
Extjs4 类的定义和扩展实例
Jun 28 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
详解JavaScript逻辑Not运算符
Dec 04 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
Dec 22 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
es6 filter() 数组过滤方法总结
Apr 03 Javascript
vue中的面包屑导航组件实例代码
Jul 01 Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
bootstrap-table后端分页功能完整实例
Jun 01 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP array_push 数组函数
2009/12/26 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
Python多进程编程技术实例分析
2014/09/16 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
J2EE系统只能是基于web
2015/09/08 面试题
财务助理岗位职责
2013/11/10 职场文书
应届生会计求职信
2013/11/11 职场文书
迎八一活动主题
2014/01/31 职场文书
四群教育工作实施方案
2014/03/26 职场文书
机关职员工作检讨书
2014/10/23 职场文书
尼克胡哲观后感
2015/06/08 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python