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异常。
相关文章
|
JavaScript 前端开发 调度
node - 定时调度 (下篇)
node - 定时调度 (下篇)
|
9天前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
5天前
|
JavaScript Linux 开发者
一个用于管理多个 Node.js 版本的安装和切换开源工具
【9月更文挑战第14天】nvm(Node Version Manager)是一个开源工具,用于便捷地管理多个 Node.js 版本。其特点包括:版本安装便捷,支持 LTS 和最新版本;版本切换简单,不影响开发流程;多平台支持,包括 Windows、macOS 和 Linux;社区活跃,持续更新。通过 nvm,开发者可以轻松安装、切换和管理不同项目的 Node.js 版本,提高开发效率。
|
1月前
|
缓存 JavaScript 安全
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
这篇文章提供了2022年最新最详细的Node.js和cnpm安装教程,包括步骤图解、全局配置路径、cnpm安装命令、nrm的安装与使用,以及如何管理npm源和测试速度。
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
|
24天前
|
JavaScript NoSQL 前端开发
|
1月前
|
JavaScript Linux
2022年超详细在CentOS 7上安装Node.js方法(源码安装)
这篇文章介绍了在CentOS 7系统上通过源码安装Node.js的详细步骤,包括从官网下载Node.js源码包、将安装包上传至虚拟机、解压安装包、删除压缩文件、编译安装Node.js、检查Node.js和npm版本,以及切换npm源到淘宝镜像以加速下载。此外,还提供了一个获取Linux下Node.js离线安装包的微信公众号搜索方式。
|
1月前
|
JavaScript
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
|
1月前
Mac 安装 Node Error: Could not symlink include/node/common.gypi
Mac 安装 Node Error: Could not symlink include/node/common.gypi
20 3
|
1月前
|
JavaScript
Node.js的安装
这篇文章提供了Node.js的安装指南,包括从官网下载、安装步骤、验证安装是否成功,以及如何安装淘宝镜像加速器cnpm或使用淘宝npm镜像来加速npm包的安装过程。
Node.js的安装
|
1月前
|
JavaScript 内存技术
NodeJs——nvm安装和使用
NodeJs——nvm安装和使用
64 0
NodeJs——nvm安装和使用