- assert断言
- async_hooks异步钩子
- async_hooks/context异步上下文
- buffer缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process子进程
- cluster集群
- CLI命令行
- console控制台
- Corepack核心包
- crypto加密
- crypto/webcrypto网络加密
- debugger调试器
- deprecation弃用
- dgram数据报
- diagnostics_channel诊断通道
- dns域名服务器
- domain域
- Error错误
- events事件触发器
- fs文件系统
- global全局变量
- http超文本传输协议
- http2超文本传输协议2.0
- https安全超文本传输协议
- inspector检查器
- Intl国际化
- module模块
- module/cjsCommonJS模块
- module/esmECMAScript模块
- module/package包模块
- net网络
- os操作系统
- path路径
- perf_hooks性能钩子
- policy安全策略
- process进程
- punycode域名代码
- querystring查询字符串
- readline逐行读取
- repl交互式解释器
- report诊断报告
- stream流
- stream/web网络流
- string_decoder字符串解码器
- test测试
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v18.7.0 文档
- Node.js 18.7.0
- ► 目录
-
►
索引
- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- policy 安全策略
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 文档搜索
- 会员登录
timers 定时器#
timer
模块暴露了一个全局的用于在未来某个时间点调用的调度函数的 API。
因为定时器函数是全局的,所以不需要调用 require('node:timers')
来使用该 API。
Immediate
类#
此对象是在 setImmediate()
内部创建并返回。
它可以传给 clearImmediate()
以取消调度的行动。
immediate.hasRef()
#
如果为 true,则 Immediate
对象将使 Node.js 事件循环保持活动状态。
immediate.ref()
#
调用时,只要 Immediate
处于活动状态,就请求 Node.js 事件循环不退出。
多次调用 immediate.ref()
将不起作用。
immediate.unref()
#
调用时,活动的 Immediate
对象不需要 Node.js 事件循环保持活动状态。
如果没有其他活动保持事件循环运行,则进程可能会在调用 Immediate
对象的回调之前退出。
多次调用 immediate.unref()
将不起作用。
Timeout
类#
此对象是在 setTimeout()
和 setInterval()
内部创建并返回。
它可以传给 clearTimeout()
或 clearInterval()
以取消调度的行动。
timeout.close()
#
取消超时。
timeout.hasRef()
#
如果为 true,则 Timeout
对象将使 Node.js 事件循环保持活动状态。
timeout.ref()
#
调用时,只要 Timeout
处于活动状态,就请求 Node.js 事件循环不退出。
多次调用 timeout.ref()
将不起作用。
timeout.refresh()
#
将定时器的开始时间设置为当前时间,并重新调度定时器在调整为当前时间的先前指定的时长调用其回调。 这对于在不分配新的 JavaScript 对象的情况下刷新定时器很有用。
timeout.unref()
#
调用时,活动的 Timeout
对象不需要 Node.js 事件循环保持活动状态。
如果没有其他活动保持事件循环运行,则进程可能会在调用 Timeout
对象的回调之前退出。
多次调用 timeout.unref()
将不起作用。
timeout[Symbol.toPrimitive]()
#
将 Timeout
强制为原始类型。
该原始类型可用于清除 Timeout
。
该原始类型只能在创建超时的同一线程中使用。
因此,要在 worker_threads
上使用它,则必须首先将其传给正确的线程。
这允许增强与浏览器 setTimeout()
和 setInterval()
实现的兼容性。
调度定时器#
Node.js 中的定时器是一种会在一段时间后调用给定函数的内部构造。 定时器函数的调用时间取决于用于创建定时器的方法以及 Node.js 事件循环正在执行的其他工作。
setImmediate(callback[, ...args])
#
在 I/O 事件的回调之后调度 callback
的“立即”执行。
setInterval(callback[, delay[, ...args]])
#
每 delay
毫秒调度重复执行 callback
。
setTimeout(callback[, delay[, ...args]])
#
在 delay
毫秒后调度单次的 callback
的执行。
取消定时器#
setImmediate()
、setInterval()
和 setTimeout()
方法各自返回表示调度的定时器的对象。
这些可用于取消定时器并防止其触发。
clearImmediate(immediate)
#
取消由 setImmediate()
创建的 Immediate
对象。
clearInterval(timeout)
#
取消由 setInterval()
创建的 Timeout
对象。
clearTimeout(timeout)
#
取消由 setTimeout()
创建的 Timeout
对象。
定时器的 Promise API#
timers/promises
API 提供了一组可返回 Promise
对象的可供选择的定时器函数。
API 可通过 require('node:timers/promises')
访问。
timersPromises.setTimeout([delay[, value[, options]]])
#
timersPromises.setImmediate([value[, options]])
#
timersPromises.setInterval([delay[, value[, options]]])
#
返回异步迭代器,以 delay
毫秒的间隔生成值。
timersPromises.scheduler.wait(delay[, options])
#
由调度 API 草案规范定义的实验性 API,正在开发为标准 Web 平台 API。
timersPromises.scheduler.yield()
#
由调度 API 草案规范定义的实验性 API,正在开发为标准 Web 平台 API。