繁体   English   中英

setInterval函数JavaScript的问题

[英]Problems with setInterval function JavaScript

我在JavaScript中使用了setInterval函数,但我从console.log('NOW')得到了每秒一百个代表。 setTimeout也具有相同的效果。

我的错误在哪里? 我想每15分钟调用一次“function1”函数。

JavaScript代码:

   function1() {
      console.log('NOW');
      .
      .
      .
      });
    },
    refreshData() {
      this.function1();
      setInterval(this.refreshData(), 900000);
    },

谢谢!

你正在调用这个函数

setInterval(this.refreshData(), 900000);

而不是传递对函数的引用

setInterval(this.refreshData, 900000);

像这样包裹你的函数调用:

    var self = this;
    refreshData() {
      this.function1();
      setInterval(function(){  self.refreshData() }, 900000);
    }

有两种可能的方法:

在提供的代码中,您应该使用setTimeout ,因为您手动重新启动函数:

 function function1() { console.log('NOW'); } function refreshData() { this.function1(); setTimeout(this.refreshData, 3000); } refreshData(); 

或者简单地用setInterval替换现有的逻辑,它应该完成你手动实现的所有工作:

 function function1() { console.log('NOW'); } this.function1(); setInterval(this.function1, 3000); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM