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

把JS里面的clearInterval(obj.timer)与fn()顺序对调后会无法执行fn()是为什么?

代码如下:

if (iTarget == icur) {
if(fn){fn();}
clearInterval(obj.timer);
}


正在回答

1 回答

因为如果这样先判断有fn()方法时,会先执行调用fn()方法然后执行clearintval(),但是这时候浏览器并不会等到fn()方法执行完才去调用clearintval().它会直接清除fn()内的定时器。正好老师下节课会讲到同时调用两个 startMove()方法时会遇到的问题,这时只会执行第二个startMove()方法而不会一个一个调用也不会同时调用,原因就是第一个startMove()方法还没执行完第二个startMove()里的clearintval()就把第一个startMove()计时器清除了。这和你问的问题应该是同一个道理吧。个人理解,适当参考。http://img1.sycdn.imooc.com//598821e60001322119200930.jpg

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

把JS里面的clearInterval(obj.timer)与fn()顺序对调后会无法执行fn()是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信