javascript – 递归setInterval()连续运行

我正在尝试使用递归的setInterval函数使用 JavaScript每5秒运行一次函数.

以下代码只是尽可能快地记录“已启动”,然后崩溃浏览器.为什么这不是每5秒钟运行一次?

function five() {
console.log("five");
setInterval(five(),5000);
}
five();

解决方法

不要以这种方式使用setInterval.使用setTimeout.通过调用setInterval,每次调用函数时都会创建一个UNIQUE计时器. SetTimeout将创建一个结束的计时器,然后创建一个新的计时器.

您还应该更改引用五的方式. five()立即执行该函数.只需五次传递函数引用,如下所示.

function five() {
    console.log("five");
    setTimeout(five,5000);
}
five();

当然,您始终可以将函数调用作为要评估的字符串传递:

setTimeout("five()",5000); // note the quotes

但这通常被认为是不好的做法.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...