扫码关注官方订阅号
刚才看到一个问题,然后写了如下代码
for(var i=1;i<=3;i++){ (function(i){ setTimeout(function(){ alert(i); },10000); })(i); }
发现10秒延迟之后弹出1 3 2,而换成1秒延迟就是1 2 3,想不明白.
认证0级讲师
10秒之后也可能出现123,这个是随机的,取决于调度算法,不能依赖于这个顺序。
你把alert改成console.log就没问题了。 alert会影响定时器的调度。 所以,通常调试js时,这个问题必须注意啊。 一不小心,就掉坑里了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
10秒之后也可能出现123,这个是随机的,取决于调度算法,不能依赖于这个顺序。
你把alert改成console.log就没问题了。
alert会影响定时器的调度。
所以,通常调试js时,这个问题必须注意啊。
一不小心,就掉坑里了。