setTimeout("alert('ok');",1580870100);
setTimeout("alert('ok1');",15808701000);//这条会立即执行
setTimeout("alert('ok');",1580870100000);
1
ljcarsenal 2017-03-31 20:02:40 +08:00 1
|
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 1
超过 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 |