Javascript 哪种方式更方便在无止境循环中执行异步函数,每次执行之间都有睡眠(Node.js/Vanilla js)

Javascript 哪种方式更方便在无止境循环中执行异步函数,每次执行之间都有睡眠(Node.js/Vanilla js),javascript,node.js,asynchronous,delay,sleep,Javascript,Node.js,Asynchronous,Delay,Sleep,我写了一些异步函数,它做了一些事情,然后什么也不返回。 在函数结束执行后,我想等待几秒钟,然后重复相同的例程 流程如下所示: 1.执行函数 2.等待执行完成 3.等待/睡眠一段时间 4.从步骤1重新开始 函数执行、睡眠和重新开始的无休止循环 现在我的问题是,下面两个代码块中哪一个更适合使用: 备选案文1: const表示生命的意义=42; 常数延迟(单位:毫秒)=1000; const whatsTheMeaningOfLife=async()=>{ console.log(生命的意义); }

我写了一些异步函数,它做了一些事情,然后什么也不返回。 在函数结束执行后,我想等待几秒钟,然后重复相同的例程

流程如下所示: 1.执行函数 2.等待执行完成 3.等待/睡眠一段时间 4.从步骤1重新开始

函数执行、睡眠和重新开始的无休止循环

现在我的问题是,下面两个代码块中哪一个更适合使用:

备选案文1:

const表示生命的意义=42;
常数延迟(单位:毫秒)=1000;
const whatsTheMeaningOfLife=async()=>{
console.log(生命的意义);
}
常数outter=fn=>{
内部=异步fn=>{
等待fn();
setTimeout(()=>outter(fn),延迟以毫秒为单位);
};
内(fn);
};
(() => {
outter(飞行的意义是什么);
})();
备选案文2:

const表示生命的意义=42;
常数延迟(单位:毫秒)=1000;
const whatsTheMeaningOfLife=()=>{
console.log(生命的意义);
}
常量睡眠=()=>{
返回新承诺((解决,)=>{
setTimeout(()=>resolve(),延迟以毫秒为单位);
});
};
(异步()=>{
while(true){
等待飞行的意义();
等待睡眠();
}
})();

第二个版本看起来更短、更干净、更容易理解,并且允许您正确处理错误。但是,我建议将
延迟(以毫秒为单位)
作为参数传递给
sleep
,不要使用全局常量。

第二个版本似乎更短、更清晰、更容易理解,还允许您正确处理错误。但是,我建议将
延迟(毫秒)作为
sleep
的参数传递给
sleep
,而不要使用全局常量。

内部
似乎没有必要,它与外部
一样。
内部
似乎没有必要,它与外部
一样。