递归 setInterval() 连续运行
Recursive setInterval() runs continuously
我试图使用递归的setInterval函数使用JavaScript每5秒运行一次函数。
以下代码只是尽可能快地记录"已启动",然后使浏览器崩溃。为什么不是每 5 秒运行一次?
function five() {
console.log("five");
setInterval(five(), 5000);
}
five();
不要以这种方式使用 setInterval。使用 setTimeout。通过调用 setInterval,您可以在每次调用函数时创建一个 UNIQUE 计时器。SetTimeout 将创建一个结束的计时器,然后创建一个新的计时器。
您还应该更改引用five
的方式。 five()
立即执行该函数。只需five
传递一个函数引用,因此请按照下面看到的方式进行操作。
function five() {
console.log("five");
setTimeout(five, 5000);
}
five();
当然,您始终可以将函数调用作为要计算的字符串传递:
setTimeout("five()", 5000); // note the quotes
但这通常被认为是不好的做法。
您立即调用five
,而不仅仅是将其传入:
function five () {
console.log("five");
}
setInterval(five, 5000);
/* ^ */
更改此行:
setInterval(five(), 5000);
喜欢这个:
setInterval(five, 5000);
但似乎您真正需要的是:
setTimeout(five, 5000);
因此,您的代码将如下所示:
function five() {
console.log("five");
setTimeout(five, 5000);
}
five();
崩溃的原因是你正在调用函数五。相反,您应该将其作为参数传递。
setInterval(five, 5000);
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 如何连续运行计时器?(当你刷新时,不要从头开始)
- Javascript:监视队列/连续运行函数
- setTimeout 连续运行其函数
- 使用节点 JS 运行连续后台作业
- 在开发过程中自动连续运行 Jasmine 测试
- 在jQuery UI中,如何防止连续调用时运行数百万次的“脉动”效应
- 如何在追加数据并完成该数据的函数后连续运行函数
- 如何使 UI 线程连续运行
- 递归 setInterval() 连续运行
- JavaScript使用带有画布的setInterval连续运行函数
- 在没有cron作业的情况下连续运行php函数
- 连续运行功能,需要计数动作
- 两个连续的动画将不会在jQuery中运行
- 连续运行jQuery动画
- 使 Angular 控制器通过页面刷新连续运行
- setInterval 函数不在定时间隔上运行,只是连续重复,没有时间