Javascript 进行事件调度的有效方法,

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


我最初的想法是基于


方法 1 - 设置间隔


var events = [ 

   //difference datetime

]

setInterval(() => check(), 60000); //Everyminutes)


function check(){

   events.forEach(event =>{

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

   })

}

但是,我不确定这是否是最好的方法,所以我决定尝试使用setTimeout类似的东西。


方法 2 - 设置超时


var events = [ 

   //difference datetime

]


bot.on('ready', ()=>{

   events.forEach(event=>{

      setTimeout( /*do somthing */, event.time)

   })

}

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


慕工程0101907
浏览 144回答 1
1回答

森林海

我肯定更喜欢方法2。方法 1 必然是精度(关于执行的确切时间)和浪费的 CPU 周期之间的折衷。使用方法 1 的唯一借口是某些事件的执行会影响其他事件的所需开始时间。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript