Node JS 中的 settimeout

Isaac Tony 2022年5月13日
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
Author: 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