我在JavaScript中使用了setInterval函数,但是从console.log('NOW')每秒得到一百次。 setTimeout也具有相同的效果。
我的错误在哪里? 我想每15分钟调用一次函数“ function1”。
JavaScript代码:
function1() {
console.log('NOW');
.
.
.
});
},
refreshData() {
this.function1();
setInterval(this.refreshData(), 900000);
},
非常感谢!
答案 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);