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 window.open弹出新的网页窗口
Jan 16 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
Apr 06 Javascript
C++中的string类的用法小结
Aug 07 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
Electron中实现大文件上传和断点续传功能
Oct 28 Javascript
vue-router 控制路由权限的实现
Sep 24 Javascript
JavaScript实现五子棋小游戏
Oct 26 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
Jan 27 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
Javascript中的常见排序算法
2007/03/27 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
JS实现日期时间动态显示的方法
2015/12/07 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python k-近邻算法实例分享
2014/06/11 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
django框架模板语言使用方法详解
2019/07/18 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
护理专业优质毕业生自荐书
2014/01/31 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript