gpt4 book ai didi

javascript - 以负延迟调用 setTimeout 可以吗?

转载 作者:IT王子 更新时间:2023-10-29 03:12:09 27 4
gpt4 key购买 nike

以下代码片段设置了一个我希望至少持续一秒钟的超时:

var currentTimeMillis = new Date().getTime();
// do stuff...
var sleepTime = 1000 - (new Date().getTime() - currentTimeMillis);

鉴于 sleepTime 可以是负数,调用 setTimeout 是否安全,如下所示:

setTimeout(callback, sleepTime)

或者我是否需要在调用 setTimeout 之前检查负值?

最佳答案

根据MDN引用,规范要求有一个最小超时。

如果您提供的延迟小于此值(HTML5 规范规定为 4 毫秒),那么浏览器将忽略您的延迟并使用最小值。

所以底片应该没问题,因为它会小于最小值。


显然,情况并非总是如此(Web 开发并非总是如此!)。根据 ( http://programming.aiham.net/tag/browser-compatibility/ ):

Providing setTimeout a negative time will not always result in the callback function being called. This works in other browsers, but in Internet Explorer (8 or lower) you have to make sure any negative times are changed to zero.

我自己还没有测试过,但就像 Thomasz 所说的那样,安全一点可能更好。

关于javascript - 以负延迟调用 setTimeout 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com