为了账号安全,请及时绑定邮箱和手机立即绑定

怎样解决定时器里i的问题

怎样解决定时器里i的问题

ITMISS 2018-09-04 17:29:45
这段代码如果不加封闭空间(被注释部分),一直弹6,加了封闭空间就没有规律的乱弹了,哪位大神能帮忙解决一下定时器里i的问题(换成timeout也是不好使的),让他在定时器里面弹出0,1,2,3,4,5,
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

不加闭包,引用的都是同一个i,自然都是6。

后面那个很有趣,当你不是用alert显示i,而是用log显示i时,它必然是有序的,这说明回调是按顺序压入执行线程的,所以alert的乱序和setTimeout或者setInterval本身没关系。

那为什么会乱序呢?这是因为alert会打断程序的执行,阻塞执行线程,会导致setTimeout和setInterval的结果具有不确定性,自然就不能保证顺序。

所以结论是,不要用alert。


查看完整回答
反对 回复 2018-10-19
  • 1 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号