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