簡體   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