根据我在几个 SO 答案中的理解,如果计算机在 setTimeout
之后进入休眠模式已被调用, sleep 周期应该被忽略。
例如:
setTimeout(foo, 30000);
foo
被称为 但是,我的测试显示以下行为:
setTimeout(foo, 30000);
foo
被称为 我的理解是,当计算机唤醒时,如果在 sleep 期间会触发超时,则立即触发,否则在 t0+[超时值] 时触发。
那么预期的行为是什么?
所有浏览器和操作系统都一样吗?
我的一项测试(在 Windows 10 上使用最新版本的 Chrome):https://codepen.io/robloche/pen/GRJvEJB
最佳答案
总结一下上面的评论:
我最初的问题是更新身份验证 token ,我最终得到了一个不使用
setTimeout
的解决方案(感谢 https://stackoverflow.com/a/6347336/603393 ):setInterval
定期检查下一次续订日期是否过去。 这样,计算机是在下一个续订日期前 1 秒或 36 小时后唤醒都没有关系。
关于javascript - setTimeout 对比 sleep 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60508262/