function abc() {
console.log("ok")
}
setTimeout(abc, 10000000000000000000000000000000)
当我运行这段代码时,它应该将 ok 的打印延迟 10000000000000000000000000000000ms,但它会立即打印出来。
我该如何解决这个问题?
因为您可以使用的最大值是
2,147,483,647
以上任何内容都会立即执行
浏览器在内部将延迟存储为 32 位有符号整数。当使用大于 2,147,483,647 毫秒(约 24.8 天)的延迟时,这会导致整数溢出,导致超时立即执行。
https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value