在单片机中, 执行程序中常会用到一个Delay的概念
所起的作用就是让程序停一小会,从秒到毫秒甚至微秒的延时, 在做驱动程序时,实现时序上起到很重要的作用
比如Arduino中常使用的就是delay(ms)函数
在Nodejs中, 大家肯定说相应的就是setTimeout, 它虽然能延迟执行, 但使用起来跟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
这期就酱紫[做鬼脸]
复杂的问题简单化
每次只关注一个知识点
对技术有兴趣的小伙伴可以关注我, 我会经常分享各种奇奇怪怪又实用的技术知识