代码之家  ›  专栏  ›  技术社区  ›  Mrugesh

每次[closed]时,setTimeOut函数在延迟时间持续时间后都不会调用

  •  -3
  • Mrugesh  · 技术社区  · 5 年前

    我的代码如下所示:

    setTimeout(function () {
      //send message in rabbitmq queue 
    }, 5 * 60 * 1000);
    

    这里发生的是setTimeOut中的函数偶尔被调用,而不是每次调用。那么如何让它每次调用函数内部编写的代码呢?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Shashidhara    5 年前

    了解 设置超时 你需要知道javascript是异步和单线程的。

    设置超时 函数在堆栈为空时执行。所以函数的执行主要取决于堆栈何时变为空。

    事件循环总是检查堆栈是否为空,并给函数一个执行的机会。要了解这一点,可以检查事件循环的工作方式: http://latentflip.com/loupe