当前位置: 首页 > 知识库问答 >
问题:

设置此时间。RangeError:超出最大调用堆栈大小

赵骏奇
2023-03-14

为什么选择范围错误: 在此.startTime() 中超出了最大调用堆栈大小;

startTime() {
    $('.m-codeModal-resendTimer').html(this.sectmr);
    this.sectmr--;
    if (this.sectmr < 0) {
        this.sectmr = 0;
        $('.m-codeModal-resendErrorNow').fadeIn(0);
        $('.m-codeModal-resendErrorSec').fadeOut(0);
        $('.m-codeModal-sorry').fadeOut(0);
    }
    setTimeout(this.startTime(), 1000);
}

共有3个答案

华章横
2023-03-14

问题是你在做< code>setTimeout(this.startTime(),1000);,执行< code>this.startTime()并使用其返回值(在本例中未定义)作为计时器处理程序。只需删除< code>()。

叶晋
2023-03-14

你在一个无限循环中。

通过首次调用 startTime() 函数调用,一旦进入 setTimeout 函数,您将再次递归地调用 startTime。

现在,在startTime()函数中,一旦进入,就无法退出它。

也许你会想试试

if (this.sectmr < 0) {
  ...
  return;
}

通过添加返回语句,一旦你的sectmr低于零并进入if循环,你就应该被踢出这个函数。但是,我不确定你的最终目标是什么。请在开头的问题中更详细地描述一下。

孔正文
2023-03-14

几件事...

  • 添加函数关键字以定义startTimefunction
  • 删除setTimeout引用中的thiskeyword
  • 函数setTimeout将回调作为参数。您实际上是在setTimeout函数有机会计算和倒计时1000毫秒之前调用startTimefunction,而不是将回调参数传递给函数

下面是一个简化的例子:

var count = 0;
function startTime() {
    count++;
    document.getElementById('count').innerHTML = count;
    setTimeout(startTime, 1000);
}
startTime();
html lang-html prettyprint-override"><div id="count"></div>
 类似资料:
  • 问题内容: 我想这意味着有一个循环引用,但是对于我的一生,我无法猜测如何解决它。 有人有主意吗? http://plnkr.co/edit/aNcBcU?p=预览 检查Chrome中的调试控制台(例如),您将看到错误。冒犯的行是 通过以下方式在控制器上对scope.map进行“ $ watched” 问题答案: 这是因为您要比较对象是否相等,而不是参考。将您的声明更改为此:

  • 这是我在React中的第一个应用程序。在localhost中,一切正常,当我使用Github Pages部署时,我的应用程序(Info/Images/evenements)中的一些页面无法呈现。每次单击他们的链接访问他们时,我都会在控制台上看到一个白色页面和此错误: range error:object . tostring处超出了最大调用堆栈大小 同样,当我刷新页面时,github pages返

  • 我将redux添加到我的项目中进行状态管理,在添加reducer之前一切都很好 我认为每个中间件功能的下一步(操作)都会导致问题,但我不知道如何修复它。 我使用的是React 17.0.2,React redux 7.2.3,redux 4.1.2。 动作-- 中间件-- 中间件-- 减速机 -- 商店.js:

  • 问题内容: 我试图将文档批量插入MongoDB中(因此绕过Mongoose并使用本机驱动程序,因为Mongoose不支持批量插入文档数组)。我这样做的原因是为了提高写作速度。 我在以下代码中的console.log(err)处收到错误“ RangeError:超出最大调用堆栈大小”: 也许与Mongoose返回的响应数组的格式有关,这意味着我不能直接使用MongoDB进行本机插入吗?我已经在每个响

  • 当我为图表(react-chartjs-2)获取数据时,我收到了这个错误。我实现了try/catch块,但不知道如何删除这个错误。在Edge浏览器上,我得到了CRIPT28:SCRIPT28:堆栈空间不足 这是我在组件中调用的操作。 这是连接到redux存储的组件。它在我看来一切都很好。

  • React.js用props给后代组件发值错了? 我编写了前面的演示来测试使用向后代组件发送信息。但它导致了错误: 未捕获的范围错误:对象超过了最大调用堆栈大小。克隆元素 但是我在演示运行良好后才写,所以你能告诉我是什么原因导致错误吗?