首页 > 解决方案 > 使用 setTimeout() 对较长(约 30 分钟)间隔的性能考虑

问题描述

我正在制作一个水提醒 Chrome 扩展程序,它每隔一段时间触发一次用户通知,通常很长(最长可达 30 分钟),而且我猜 setTimeout 不会是性能方面的最佳选择,所以我开始思考关于承诺,因为它们被要求在长时间内异步操作,但这并不奏效,所以你有什么想法吗?

预先感谢。

标签: javascripttimesettimeout

解决方案


而且我猜 setTimeout 不会是关于性能的最佳选择

setTimeout()性能足够。那里没有关于性能的问题。

所以我开始考虑promise,因为它们是长期异步操作的

不,这不是 Promise 的目的。Promise 只是流量控制工具。它们可以帮助您在 (a) 等待结果时同时执行多项操作,但它们并不比其他任何东西都具有神奇的性能。他们也不会启动任何线程或类似的东西。

在这种情况下,我实际上会每隔一秒开始一个间隔,它将当前时间与应该在某个特定时间发生的任何预定事件进行比较。这样做的好处是可以重新启动浏览器,并且您可以从上次中断的地方继续,而不必担心setTimeout().


推荐阅读