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截取指定长度字符串代码
Aug 21 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
在Docker快速部署Node.js应用的详细步骤
Sep 02 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
JavaScript运行原理分析
Feb 09 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
Feb 28 Javascript
JS实现图片幻灯片效果代码实例
May 21 Javascript
Angular8 简单表单验证的实现示例
Jun 03 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
PHP写日志的实现方法
2014/11/05 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
js实现倒计时秒杀效果
2020/03/25 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
Python创建系统目录的方法
2015/03/11 Python
python编写爬虫小程序
2015/05/14 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Python 使用type来定义类的实现
2019/11/19 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
个人自我鉴定范文
2013/10/04 职场文书
学习新党章思想汇报
2014/01/09 职场文书
教师个人读书活动总结
2014/07/08 职场文书
小学教师读书活动总结
2014/07/08 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
初二英语教学反思
2016/02/15 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技