node - 定时调度 (上篇)

简介: node - 定时调度 (上篇)

node.js中的定时器是一种会在一段时间后调用给定的函数的内部构造。何时调用定时器函数取决于用来创建定时器的方法,以及node.js时间循环正在执行的其他工作。


setImmediate


node.js定义了setImmediate(callback[, ...args])方法,用于设定定时器为立即执行定时器。其中参数:callback<function>指在当前回合的Node.js事件循环结束时调用的函数;...args<any>指当调用callback时传入的可选参数。


当多次调用setImmediate()时,callback函数将按照创建它们的顺序排队等待执行。每次事件循环迭代都会处理整个回调队列。如果立即(immediate)定时器是从正在执行的回调排入队列,则直到下一次事件循环迭代才会触发。


如果callback不是函数,则抛出typeError

此方法具有使用util.promisify()的用于Promise的自定义变体。


const util = require("util")
const setImmediatePromise = util.promisify(setImmediate)
setImmediatePromise("foobar").then((valur) => {
    // value === "foobar"(传值是可选的)
    // 在所有I/O回调之后执行
})
// 或使用异步功能
async function timerExample() {
    console.log("在I/o回调之前")
    await setImmediatePromise()
    console.log("在I/O回调之后")
}
timerExample()
复制代码


setInterval


setInterval(callback, delay[, ...args])方法,用于设定定时器执行的周期,定时器每隔delay毫秒重复执行一次。其中参数: callback<function>指在当前回合的Node.js事件循环结束时调用的函数;delay<number>指调用callback之前等待的毫秒数;...args<any>指当前调用callback时传入的可选参数。


  • 如果当delay大于2 147 483 647(即32位整型的最大值)或小于1时,delay将设置位1
  • 如果callback不是函数,则抛出typeError异常。
相关文章
|
2月前
|
JavaScript 前端开发
Node-RED 规则引擎重构:添加自定义节点
Node-RED 规则引擎重构:添加自定义节点
70 1
|
7月前
|
Web App开发 JavaScript 前端开发
27 # node 基本概念
27 # node 基本概念
25 0
|
2月前
|
Kubernetes Java 测试技术
ChaosBlade常见问题之创建k8s node-cpu fullload 提示无法找到node如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
21 0
|
5月前
|
JavaScript 前端开发 Java
Node CLI工具原理解析(1)
前言 CLI(Command-Line Interface) 命令行界面 搞开发的同学,或多或少的都会接触到许多的命令行工具。 有生产力工具,也有有意思的小玩意、自动化任务处理等等。 命令行工具的安装方式就很多了。
|
5月前
|
JavaScript
Node CLI工具原理解析(2)
使用npm install安装依赖,会根据bin中的描述,创建1个command到exec/filepath.js的软链 软链所在目录区别于是否是global安装 这个目录可以通过npm bin指令查看
|
7月前
|
JavaScript 算法 Linux
路由和node环境搭建
路由和node环境搭建
37 0
|
9月前
|
Kubernetes 负载均衡 监控
K8s入门基础篇:Node组件的介绍
K8s入门基础篇:Node组件的介绍
302 1
|
12月前
|
存储 缓存 负载均衡
重学Node系列04-进程及集群相关
创建进程 相信大家耳边听烂的一句话就是“JavaScript是单线程的”,为了弥补面对单线程对多核使用不足的问题,node很方便的提供了几个创建进程的方法:
51 0
|
Prometheus 监控 Kubernetes
k8s集群监控(4)-部署node-exporter
部署node-export ,监控节点基础监控,比如内存,IO,磁盘,CPU等
k8s集群监控(4)-部署node-exporter
node24-nodejs模块化的开发导出另一种方式
node24-nodejs模块化的开发导出另一种方式
70 0
node24-nodejs模块化的开发导出另一种方式

相关实验场景

更多