Node.js 定时器
稳定性: 5 - 锁定
所有的定时器函数都是全局的。不需要通过 require() 就可以访问。
setTimeout(callback, delay[, arg][, ...])
delay 毫秒之后执行 callback。返回 timeoutObject 对象,可能会用来 clearTimeout()。你也可以给回调函数传参数。
需要注意,你的回调函数可能不会非常准确的在 delay 毫秒后执行,Node.js 不保证回调函数的精确时间和执行顺序。回调函数会尽量的靠近指定的时间。
clearTimeout(timeoutObject)
阻止一个 timeout 被触发。
setInterval(callback, delay[, arg][, ...])
每隔 delay 毫秒就重复执行 callback 。返回 timeoutObject 对象,可能会用来 clearTimeout()。你也可以给回调函数传参数。
clearInterval(intervalObject)
阻止一个 interval 被触发。
unref()
setTimeout 和 setInterval 所返回的值,拥有 timer.unref() 方法,它能让你创建一个活动的定时器,但是它所在的事件循环中如果仅剩它一个计时器,将不会保持程序运行。如果计时器已经调用了 unref,再次调用将无效。
在 setTimeout 场景中,当你使用 unref 并创建了一个独立定时器它将会唤醒事件循环。创建太多的这样的东西会影响事件循环性能,所以谨慎使用。
ref()
如果你之前已经使用 unref() 一个定时器,就可以使用 ref() 来明确的请求定时器保持程序打开状态。如果计时器已经调用了 ref(),再次调用将无效。
setImmediate(callback[, arg][, ...])
在 setTimeout 和 setInterval 事件前,在输入/输出事件后,安排一个 callback "immediate" 立即执行。
immediates 的回调以它们创建的顺序加入队列。整个回调队列会在事件循环迭代中执行。如果你将immediates 加入到一个正在执行回调中,那么将不会触发immediate,直到下次事件循环迭代。
clearImmediate(immediateObject)
停止一个 immediate 的触发。
Node.js 定时器的更多相关文章
- 定时器setTimeout()和Node.js的Event Loop
一.定时器 setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,也就是说,尽可能早得执行.它在"任务队列"的尾部添加一个事件,因此要等到同步任务和 ...
- The Node.js Event Loop, Timers, and process.nextTick() Node.js事件循环,定时器和process.nextTick()
个人翻译 原文:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ The Node.js Event Loop, Ti ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
[摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
目录 Event Loop 是什么? Event Loop 基本解释 事件循环阶段概览 事件循环细节 timers pending callbacks poll阶段 check close callb ...
- 极简 Node.js 入门 - 2.4 定时器
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js API 初解读(一)
Node.JS API 初解读 Version: NodeJs v6.2.0 一. Assert 1.简介 Assert模块主要用于断言.如果表达式不符合预期,就抛出一个错误. 该模块用于编写程序的单 ...
- 了不起的Node.js读书笔记
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
- node.js第一次
随着时代的变迁,日月星辰轮回,不断的有新的事物被创造于世,作为在这个世界活着的前端工程崽的我,最近又接触了一门新手艺“node.js”.自从它2009年诞生至今,被很多前端推崇,我起步已经晚了,还好它 ...
随机推荐
- 使用 RHEL(RedHat)6.1 iso 安装包 安装Samba过程
今天因为工作的需要安装了(RHEL)redhat 6.1 自己为了方便就安装Samba 以记之. 注:Linux系统是刚刚安装好的所以没有samba安装的任何记录. 安装准备: ISO:RHEL_6. ...
- [转]linux查看日志文件内容命令
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- FTP下载文件
linux命令方式下载 step1: >>ftp ip port 根据提示输入用户名 根据提示输入用户密码 >>cd 目录(重要:一定要进入文件所在的目录) >>g ...
- 通过TCP实现显示屏截图请求及回传
在很多业务场景下,需要监视显示屏画面.在实时性要求不高的情况下,可以通过定时对显示屏进行截图及回传实现. 本文通过C#中提供的TCP通信功能,对该功能的实现进行简单描述. 首先,该功能的实现分为客户端 ...
- ·c#之Thread实现暂停继续(转)
暂停与继续实现,可以使用Thread.Suspend和Thread.Resume而这两个方法,在VS2010里提示已经过时,不建议使用,在网上查阅了一些资料,发现有个事件通知的方法很好,事件通知的大致 ...
- JavaScript数据结构与算法(一) 栈的实现
TypeScript版本源码 class Stack { items = []; public push(element) { this.items.push(element); } public p ...
- thinkphp3.2v
1.thinphp环境搭建 一.将thinkphp文件拿出来,对我们有用的是cof和library,其他对开发都没有作用. 在thinkphp/library/think文件夹中几个重要的文件 1.A ...
- ios、移动端 input type=date无法点击的问题解决方法
正常用input type = "text",获取焦点的时候,将type 改成 date即可. <div class="form-item"> &l ...
- react组件开发规范(一)
这是通过修改项目运行在Google上时的警告,总结的的部分react组件开发规范: (1)编写组件时,一定要写PropTypes,切莫为了省事儿而不写! 如果一个Props不是required,一定在 ...
- 关于mysql驱动包的in语句的bug
今天发现一个MySQL驱动包执行in语句的一个bug,也许会有很多人还不知道,那么跟大家分享一下. 驱动包版本:mysql-connector-java-5.1.36.jar 在使用dbutils执行 ...