扫码关注官方订阅号
欢迎选择我的课程,让我们一起见证您的进步~~
第二种写法是错误的吧,定时器不断增加,你这样跑肯定会出现卡死的。在函数里面递归应该使用 setTimeout。这样实现的效果和第一种 setInterval 类似
setTimeout
setInterval
Q1 首先第二种的写法 ,在begin 函数内 重复执行 begin,那还不如直接用递归,你得先执行一次begin才能实现timer的赋值,以及定时器的启动。一般写法都是第一种。 你用第二种的话 ,每执行一次 begin都会给timer赋值,而且也会出现作用域的积累问题。 最好是每次进来 begin 先把定时器清除,并把timer=null; Q3 回调函数也是一个异步的机制,我觉得可能某个条件让他 到任务队列了。才执行吧
兄弟,你是打算把setInterval当成setTimeout用不?第二种写法是不对的,这样的话浏览器会挂掉,应该改成setTimeout,这种写法比第一种用setInterval的方法好,当然你还缺少了一句话,要先调用下begin函数,否则这个代码不会运行。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
第二种写法是错误的吧,定时器不断增加,你这样跑肯定会出现卡死的。在函数里面递归应该使用
setTimeout。这样实现的效果和第一种setInterval类似Q1 首先第二种的写法 ,在begin 函数内 重复执行 begin,那还不如直接用递归,你得先执行一次begin才能实现timer的赋值,以及定时器的启动。一般写法都是第一种。 你用第二种的话 ,每执行一次 begin都会给timer赋值,而且也会出现作用域的积累问题。 最好是每次进来 begin 先把定时器清除,并把timer=null;
Q3 回调函数也是一个异步的机制,我觉得可能某个条件让他 到任务队列了。才执行吧
兄弟,你是打算把setInterval当成setTimeout用不?第二种写法是不对的,这样的话浏览器会挂掉,应该改成setTimeout,这种写法比第一种用setInterval的方法好,当然你还缺少了一句话,要先调用下begin函数,否则这个代码不会运行。