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

niking
niking
niking
订阅者
2866
文章
0
评论
生活百科评论336字数 396阅读1分19秒阅读模式

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

所起的作用就是让程序停一小会,从秒到毫秒甚至微秒的延时, 在做驱动程序时,实现时序上起到很重要的作用文章源自玩技e族-https://www.playezu.com/72443.html

比如Arduino中常使用的就是delay(ms)函数文章源自玩技e族-https://www.playezu.com/72443.html

在Nodejs中, 大家肯定说相应的就是setTimeout, 它虽然能延迟执行, 但使用起来跟delay还是有那么一点不一样的文章源自玩技e族-https://www.playezu.com/72443.html

先来看看执行效果文章源自玩技e族-https://www.playezu.com/72443.html

这是一个循环输出,每输出1次等待1秒钟文章源自玩技e族-https://www.playezu.com/72443.html

代码实现文章源自玩技e族-https://www.playezu.com/72443.html

先利用Promise做个Delay功能的方法文章源自玩技e族-https://www.playezu.com/72443.html

let wait = ms => new Promise(resolve => setTimeout(resolve, ms));它借助setTimeout,在指定时间后resolve出Promise的结果, 以达成延迟"回调"的效果文章源自玩技e族-https://www.playezu.com/72443.html

相当于给出承诺(Promise)后, 在指定的时间后执行结果文章源自玩技e族-https://www.playezu.com/72443.html

具体如何使用呢:文章源自玩技e族-https://www.playezu.com/72443.html

(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

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

运行环境:

node -vv14.17.0这期就酱紫[做鬼脸]

复杂的问题简单化

每次只关注一个知识点

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

 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证