如何使用 JavaScript 立即觸發 setInterval 迴圈?


setInteral() 方法允許我們在每個特定時間段後持續觸發回撥函式。我們可以將回調函式作為第一個引數傳遞,以便在每個時間段後觸發,並將時間段(以毫秒為單位)作為第二個引數傳遞。

setInterval() 方法在第一次呼叫回撥函式時會延遲指定毫秒數。現在,問題是我們需要立即(在 0 毫秒時)第一次呼叫回撥函式,然後我們需要在給定的時間段內持續呼叫它。

示例

在下面的示例中,我們建立了 func() 函式,該函式在文件中列印訊息。我們使用了 setInterval() 方法,該方法每 3000 毫秒呼叫一次 func() 函式。

<html>
<body>
   <h3> Using the <i> setInteral() </i> method to invoke the particular function continuosly </h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      output.innerHTML += "Please wait ...." + "<br>";
      function func() {
         output.innerHTML += "The func() function is invoked!" + "<br>";
      }
      setInterval(func, 3000);
   </script>
</body>
</html>

在輸出中,使用者可以觀察到 setInteraval() 方法在第一次呼叫 func() 函式時會延遲 3000 毫秒。

使用者可以按照以下方法在第一次呼叫 func() 函式時延遲 0 毫秒。

第一次呼叫函式,然後使用 setInterval() 方法

使用 setInterval() 方法在第一次呼叫函式時不延遲的一種方法是先呼叫一次函式。

當我們第一次呼叫函式時,它會在第 0 毫秒執行。之後,setInterval() 方法會在特定時間段後持續執行該函式。

語法

使用者可以按照以下語法在使用 setInterval() 方法時在第一次呼叫函式時不延遲。

func_name()
setInterval(func_name, 1000);

在上面的語法中,我們第一次呼叫了 func_name() 函式,並在每次呼叫後延遲 1000 毫秒。

示例

在下面的示例中,func() 函式列印我們使用 setInterval() 方法每 1000 毫秒呼叫一次的訊息。為了在第一次呼叫函式時不延遲,我們第一次呼叫該函式,然後使用 setInteral() 方法呼叫該函式。

<html>
<body>
   <h3> Invoking the function for the first time and, after that, using the setInteral() method to invoke the particular function continuously. </h3>
   <div id = "output"> </div>
</body>
   <script>
      let output = document.getElementById('output');
      function func() {
         output.innerHTML += "The func() function is invoked!" + "<br>";
      }
      func()
      setInterval(func, 1000);
   </script>
</html>

在 setInterval() 方法中建立一個立即執行函式

立即執行函式會在我們建立它後立即執行函式表示式。因此,我們可以使用立即執行函式表示式在第一次呼叫函式時不延遲。我們還可以在函式內部使用 setInterval() 方法以特定間隔執行函式。

語法

使用者可以按照以下語法使用立即執行函式表示式在使用 setInterval() 方法時執行函式而不延遲。

(function name() {
   setInterval(name, 3000);
})()

在上面的語法中,我們在括號中編寫了函式表示式,然後編寫了開括號和閉括號以立即呼叫該函式。

示例 3

下面的示例建立一個測試函式,該函式使用 setInterval() 方法在每個間隔後呼叫。我們將 test() 函式編寫為立即執行函式表示式,並在函式內部使用 setInterval() 方法,每 3000 毫秒呼叫一次 test() 函式。

我們可以觀察到輸出,即 test 函式在重新整理網頁時第一次在第 0 毫秒呼叫,然後每 3000 毫秒呼叫一次。

<html>
<body>
   <h3> Using the immediately invoked function expression to invoke the function without delay for the first time while using the setInteral() method </h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      (function test() {
         output.innerHTML += "The test() function is invoked!" + "<br>";
         setInterval(test, 3000);
      })()
   </script>
</body>
</html>

使用者學習瞭如何在第一次呼叫 setInterval() 方法中使用的函式時不延遲。使用者可以第一次呼叫函式,也可以使用立即執行函式表示式。

建議第一次呼叫函式,而不是使用立即執行函式表示式,因為它會遞迴呼叫函式。在某些間隔之後,當我們在其中使用 setInterval() 方法時,立即執行函式表示式會無限次呼叫該函式。

更新於: 2023-03-07

4K+ 閱讀量

啟動你的 職業生涯

透過完成課程獲得認證

立即開始
廣告