setTimeout的最大延时时间

2021-09-27  本文已影响0人  YoungEvita

setTimeout(function() {}, dealy)

Chrome, Safari, Firefox 在内的浏览器其内部以32位带符号整数存储延时。这就会导致如果一个延时(delay)大于 2147483647 毫秒 (大约24.8 天)时就会溢出,导致定时器将会被立即执行。
dealy 的最大值为 2^31 = 2147483648

如果delay的值超过了这个值相当于delay赋值为0

var dealy = Math.pow(2, 31)
setTimeout(function() {
    console.log('delay 1')
}, dealy)
setTimeout(function() {
    console.log("dealy 2")
}, 2000)

输出结果为: dealy 1
dealy 2

参考

window.setTimeout

上一篇下一篇

猜你喜欢

热点阅读