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