setInterval函数JavaScript的问题

时间:2018-06-27 13:41:29

标签: javascript function settimeout setinterval repeat

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

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

JavaScript代码:

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

非常感谢!

3 个答案:

答案 0 :(得分:3)

您正在调用该功能

setInterval(this.refreshData(), 900000);

而不是传递对函数的引用

setInterval(this.refreshData, 900000);

答案 1 :(得分:0)

这样包装函数调用:

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

答案 2 :(得分:0)

有两种可能的方法:

在提供的代码中,您应该使用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);