Node JS 中的 settimeout

Isaac Tony 2023年10月12日
Node JS 中的 settimeout

setTimeOut() 函式是一個非同步函式,用於在指定時間後執行一段程式碼。

這是我們可以用來排程 Node js API 提供的程式碼的幾種方法之一。此方法在視窗物件和伺服器端都可用。

但是,它在伺服器端的實現與 window 物件中使用的不同。

在 NodeJS 中使用 setTimeOut() 函式

setTimeOut() 函式在 Timers 模組下提供。該模組提供了各種方法,我們可以使用這些方法來安排函式在指定時間後呼叫。

由於 Timer 物件是一個全域性物件,因此在使用 setTimeOut() 函式時,我們的程式碼中不需要 require() 任何內容。

setTimeout() 函式接受幾個引數,包括:

  • 該功能將在設定的時間間隔過後執行。
  • 計時器在執行指定函式之前將等待的時間(以毫秒為單位)。
  • 額外的可選引數。

此函式返回一個正整數值,用於標識由對該函式的呼叫建立的計時器,通常稱為 timeoutID

這是 setTimeOut() 函式的語法。

setTimeout(function [, delay, arg1, arg2, ...]);

setTimeOut() 函式的一個簡單示例,用於在函式之間暫停執行一定的毫秒數。

const display =
    () => {
      console.log('Some code to be executed !');
    }

// function may contain more parameters
setTimeout(display, 4000)

輸出:

Some code to be executed !

setTimeOut() 的非同步特性在執行多個相互等待的函式時顯露出來。在下面的示例中,執行第一個函式之前的平均等待時間為 6 秒

現在同時執行第二個函式。但是,由於執行第二個函式的平均等待時間是 4 秒,因此最後一個函式首先執行,然後是第二個函式,最後是第一個函式。

setTimeout(() => {console.log('This is the first statement')}, 6000);
setTimeout(() => {console.log('This is the second statement')}, 4000);
setTimeout(() => {console.log('This is the final statement')}, 2000);

輸出:

This is the final statement
This is the second statement
This is the first statement
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn