node - 定时调度 (下篇)

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

setTimeout


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


可能不会精确地在delay毫秒时调用callback。Node.js不保证回调被触发的确切时间,也不保证他们的顺序。callback会在尽可能接近指定的时间调用。

同setInterval一样,当delay大于2 147 483 647(即32位整型的最大值)或小于1时,delay将设置为1.


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

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


const util = require("util")
const setTimeoutPromise = util.promisify(setTimeout)
setTimeoutPromise(40, "foobar").then((valur) => {
    // value === "foobar"(传值是可选的)
    // 在大约40毫秒后执行
})
复制代码


setInterval和setTimeout的异同


setIntervalsetTimeout这两个方法的参数是一样的,其区别在于定时执行的时间不同。


setInterval是每间隔一定时间执行一次,循环往复。例如, 每隔1秒执行一次,60秒过去后执行了60次。setTimeout是过了一定时间执行一次,只执行一次。例如,隔1秒后执行一次,过了十万八千秒后也只在第一次秒执行了一次。


取消定时


setImmediate()setInterval()setTimeout()方法各自返回表示预定的定时器的对象。它们可用于取消定时器并防止其触发。


无法取消使用setImmediate()setTimeout()Promise化的变体创建的定时器

相关文章
|
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
Node CLI工具原理解析(2)
使用npm install安装依赖,会根据bin中的描述,创建1个command到exec/filepath.js的软链 软链所在目录区别于是否是global安装 这个目录可以通过npm bin指令查看
|
5月前
|
JavaScript 前端开发 Java
Node CLI工具原理解析(1)
前言 CLI(Command-Line Interface) 命令行界面 搞开发的同学,或多或少的都会接触到许多的命令行工具。 有生产力工具,也有有意思的小玩意、自动化任务处理等等。 命令行工具的安装方式就很多了。
|
9月前
|
Kubernetes 负载均衡 监控
K8s入门基础篇:Node组件的介绍
K8s入门基础篇:Node组件的介绍
302 1
|
12月前
|
存储 缓存 负载均衡
重学Node系列04-进程及集群相关
创建进程 相信大家耳边听烂的一句话就是“JavaScript是单线程的”,为了弥补面对单线程对多核使用不足的问题,node很方便的提供了几个创建进程的方法:
51 0
node笔记记录25自定义promise4
node笔记记录25自定义promise4
42 0
node笔记记录25自定义promise4
node笔记记录23自定义promise2
node笔记记录23自定义promise2
27 0
node笔记记录23自定义promise2
node笔记记录24自定义promise3
node笔记记录24自定义promise3
34 0
node笔记记录24自定义promise3