【问题标题】:Change time intervals in node.js在 node.js 中更改时间间隔
【发布时间】:2020-02-28 16:49:08
【问题描述】:

我需要在 3 和 5 的倍数之后更改此 javascript 函数中的时间间隔,但这没有发生。 怎么了? 为此,最好使用“setInterval”还是“setTimeout”? 谢谢!

//index.js
var countx = 1;
var multiplox = 2500;

function intervalFunc() {
   console.log('Cant stop me now! ', countx, multiplox);

   if (countx % 3 === 0) {
      const timeoutObj = setTimeout(() => {
         console.log('timeout beyond time 3');
      }, 1500);
   }
   if (countx % 5 === 0) {
      const timeoutObj = setTimeout(() => {
         console.log('timeout beyond time 5');
      }, 20000);
   }
   countx++;

}
setInterval(intervalFunc, 4000);

【问题讨论】:

  • countx 是否在改变值?将其作为参数传递可能会更好
  • 那么究竟需要改变什么?间隔中的时间 (4000)、第一个 'if' 语句中的时间 (1500) 或第二个 'if' 语句中的时间 (20000)???... 期望的结果这里不是很清楚。
  • 您的预期结果是什么?

标签: javascript node.js time


【解决方案1】:
var countx = 1;
var multiplox = 2500;
var interv;
function intervalFunc() {
    console.log('Cant stop me now! ', countx, multiplox);

    if (countx % 3 === 0){
            console.log('timeout beyond time 3');
            clearInterval(interv);
            interv = setInterval(intervalFunc, 1500);
    }
    if (countx % 5 === 0){
            console.log('timeout beyond time 5')
            clearInterval(interv);
            interv = setInterval(intervalFunc, 20000);
    }
    countx ++;

}
interv = setInterval(intervalFunc, 4000);

我不知道这是否是您需要的。但是,如果您要更改间隔 Timeout,您可以这样做!

它的作用是从 4000 超时开始,每 3 次更改为 1500,每 5 次更改为 20000。 但我不知道你为什么有这个多重变量?

【讨论】:

  • 非常感谢 'var multiplox' 是不必要的,我忘了删除它。你的回答解决了我的问题。
  • @MikailhP 好 ;-)。如果这解决了你的问题。请用已解决标记我的答案
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多