nodejs单片机 (nodejs延时函数)

在单片机中, 执行程序中常会用到一个Delay的概念

所起的作用就是让程序停一小会,从秒到毫秒甚至微秒的延时, 在做驱动程序时,实现时序上起到很重要的作用

比如Arduino中常使用的就是delay(ms)函数

在Nodejs中, 大家肯定说相应的就是setTimeout, 它虽然能延迟执行, 但使用起来跟delay还是有那么一点不一样的

先来看看执行效果

Nodejs应用-利用Promise做一个类似单片机的Delay延时器功能

这是一个循环输出,每输出1次等待1秒钟

代码实现

先利用Promise做个Delay功能的方法

let wait = ms => new Promise(resolve => setTimeout(resolve, ms));

它借助setTimeout,在指定时间后resolve出Promise的结果, 以达成延迟"回调"的效果

相当于给出承诺(Promise)后, 在指定的时间后执行结果

具体如何使用呢:

(async ()=>{
	console.log("start");
	await wait(1000);				//延迟1秒
	console.log("that is after 1s");
)()

这样, 在输出"start"后, 系统会等待1秒, 再输出"that is after 1s"

下面给出本文开头的完整样例代码

let delayms = 1000;     //ms延迟时长, 单位:毫秒
let wait = ms => new Promise(resolve => setTimeout(resolve, ms));

console.time("delay-time");			//记录程序开始时间
(async ()=>{
    for (let i = 0; i < 10; i++) {
        await wait(delayms);				//让程序等一小会
        console.log("...", i);						//输出调试信息
    }
    console.log("...done");
    console.timeEnd("delay-time");		//计算并输出程序运行所消耗的总时间
})();

你问我这个有什么用?

会用的自然知道怎么用, 用在哪[憨笑]

运行环境:

node -v
v14.17.0

这期就酱紫[做鬼脸]

复杂的问题简单化

每次只关注一个知识点

对技术有兴趣的小伙伴可以关注我, 我会经常分享各种奇奇怪怪又实用的技术知识