Javascript 进行活动安排的有效方法,

Javascript Effective way to do Event Scheduling,

我正在尝试在 discord 中编写一个机器人,用户可以设置提醒,但是,我不确定最有效的方法是什么。

我最初的想法是基于

方法一-设置间隔

var events = [ 
   //difference datetime
]
setInterval(() => check(), 60000); //Everyminutes)

function check(){
   events.forEach(event =>{
      if (Date.now() >= event.time){/*do somthing */}
   })
}

但是,我不确定这是否是最好的方法,所以我决定尝试使用 setTimeout,像这样。

方法二 - 设置超时

var events = [ 
   //difference datetime
]

bot.on('ready', ()=>{
   events.forEach(event=>{
      setTimeout( /*do somthing */, event.time)
   })
}

只是想知道,方法1更好吗? setInterval 和 setTimeout 是最好的方法还是有任何其他方法或 api/library 可以使它更有效? (或者差异太小)

我肯定更喜欢方法 2。

方法 1 必然是精度(关于执行的确切时间)和浪费的 CPU 周期之间的折衷。使用方法 1 的唯一借口是某些事件的执行会影响其他事件的所需开始时间。