
setTimeout("alert('ok');",1580870100); setTimeout("alert('ok1');",15808701000);//这条会立即执行 setTimeout("alert('ok');",1580870100000); 1 ljcarsenal 2017-03-31 20:02:40 +08:00 |
2 lovedebug 2017-03-31 20:05:29 +08:00 定时器本来就不会按顺序执行的。 定时器只是将任务派发给异步事件管理器,什么时候执行按什么顺序执行是不确定的 |
3 HerrDu 2017-03-31 20:12:09 +08:00 第二个时间太大崩了? 崩溃了之后直接执行? |
4 acthtml 2017-03-31 20:14:55 +08:00 超过 32bit 的最大数字了,会归一,源码就是这么写的。 // Timeout values > TIMEOUT_MAX are set to 1. var TIMEOUT_MAX = 2147483647; // 2^31-1 |
6 isayme 2017-03-31 21:31:01 +08:00 |
8 isayme 2017-04-01 14:32:00 +08:00 |
11 isayme 2017-04-02 10:16:34 +08:00 @xuzicn Node.js 里是大于 2147483647 就强行改为 1. Chrome/Firefox 还没找到... 见: https://github.com/nodejs/node/blob/master/lib/timers.js#L390 |