最近在 MDN 看到 setTimeout 最小延时 >=4ms , 想试一下在延时为(4、3、2、1、0) 和延时分别为(0、1、2、3、4)的时候,执行顺序是否一致
下面代码执行结果为什么不是 2 1 0 或者为什么不是 0 1 2
setTimeout(()=>{console.log(2)},2);
setTimeout(()=>{console.log(1)},1);
setTimeout(()=>{console.log(0)},0);
chrome 版本
最近在 MDN 看到 setTimeout 最小延时 >=4ms , 想试一下在延时为(4、3、2、1、0) 和延时分别为(0、1、2、3、4)的时候,执行顺序是否一致
下面代码执行结果为什么不是 2 1 0 或者为什么不是 0 1 2
setTimeout(()=>{console.log(2)},2);
setTimeout(()=>{console.log(1)},1);
setTimeout(()=>{console.log(0)},0);
chrome 版本
9 回答10k 阅读
3 回答11.1k 阅读✓ 已解决
4 回答8.5k 阅读✓ 已解决
7 回答10.6k 阅读
2 回答11.1k 阅读✓ 已解决
6 回答2.3k 阅读
2 回答11k 阅读✓ 已解决
Chrome, Node
第二个参数值如果不是[1, 2 ** 31 - 1]
范围内的有效值,会默认设置为1
。node/timer.js其实不同浏览器甚至有不同的实现。
你开
Firefox
试试结果还会不一样(会打印 0,1,2