关于使用setTimeout实现num的递增

关于使用setTimeout实现num的递增

最后的else那里应该可以不用clearTimeout(timer)清除定时器的吧,因为当前的定时器函数已经执行到末尾了,也就结束了,并不会再隔一秒继续执行


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,代码中在函数inCreamentNum() 中引用 setTimeout() , 循环调用该内容,所以要clearTimeout(timer)清除定时器,否则就一直调用一直循环下去了呦。

http://img1.sycdn.imooc.com/climg//58e5a608000112bf04980214.jpg

希望对你有帮助,祝学习愉快。

  • ziom 提问者 #1
    不对,这不是间隔定时器,并不会循环下去,代码执行到if的时候,如果没有进入if,那么这次的定时任务就执行完了,除非num<=max条件成立,进入了if再次setTimeout()一次。我试过,这里删去else部分, 也就是不清除定时器,代码也能正常运行,并不会一直循环。
    2017-04-06 11:03:38
  • 小于飞飞 回复 提问者 ziom #2
    你好,根据代码,你所表述的问题是OK的,上面回答想说明,setTimeout也可以实现向 setInterval 那样隔一段实践执行一次,setTimeout 要在函数中调用自身来实现,当然现在这个代码有了这个 if 判断,也可以不清除定时器,但是其他情况就不一定了,所以养成好的习惯,不使用定时器时,要清除定时器呦。
    2017-04-06 11:52:42
  • ziom 提问者 回复 小于飞飞 #3
    好吧,不过这里确实是一处多余的操作吧,我给大家指出了这点,是不是应该奖励我点积分,随便给个几百就好O(∩_∩)O~
    2017-04-06 12:09:43
qq_天天_66 2017-07-19 21:21:38

哈哈,兄弟,有才

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师