📜  Node.js 中 setInterval() 方法的用途是什么?

📅  最后修改于: 2022-05-13 01:56:24.244000             🧑  作者: Mango

Node.js 中 setInterval() 方法的用途是什么?

setInterval() 方法帮助我们在固定延迟后重复执行一个函数。它返回一个唯一的间隔 ID,以后可以使用 clearInterval() 方法停止进一步重复执行该函数。

句法:

const intervalId = setInterval(func, 
    [delay, arg1, agr2, ..., argN]);

在哪里,

  • func是我们要在延迟毫秒后重复执行的函数。
  • delay(可选参数)是两次重复执行函数之间的延迟毫秒数。
  • arg1, ..., argN(可选参数)是执行时将传递给func的参数。

示例 1:在此示例中,我们将看到无限次的函数执行。

当我们使用 setInterval() 方法并且不使用 clearInterval() 方法清除它时,它会无限次地执行传递给它的函数。当我们需要在每个固定间隔之后获取一些信息时,我们可以使用这样的 setInterval() 方法,例如在构建时钟时,我们需要计算和更新每秒后的秒数。下面提到了一个简单的代码示例,演示了这种 setInterval() 方法的使用。

Index.js
setInterval(() => {
  console.log('HELLO GEEK');
}, 1000);


Index.js
let count = 0;
  
const intervalId = setInterval(() => {
  console.log('HELLO GEEK');
  count++;
  
  if (count === 5) {
    console.log('Clearing the interval id after 5 executions');
    clearInterval(intervalId);
  }
}, 1000);


Index.js
let count = 0;
  
// The arguments passed after the 
// delay (in milliseconds) will
// be received in our function 
// inside the setInterval() method
const intervalId = setInterval(
  (a, b) => {
    console.log(`The sum of ${a} and ${b} is ${a + b}`);
    count++;
  
    if (count === 5) {
      console.log("Clearing the interval id after 5 executions");
      clearInterval(intervalId);
    }
  },
  1000,
  5,
  10
);


输出:

示例 2:在此示例中,我们将看到使用 clearInterval() 的有限执行次数。如果我们希望函数执行有限的次数,那么我们可以使用 clearInterval() 方法。我们可以通过将 setInterval() 方法返回的间隔 id 传递给 clearInterval() 方法来清除间隔。

句法:

clearInterval(intervalId)

下面提到的代码示例演示了使用 clearInterval() 方法来实现函数的有限重复执行。

索引.js

let count = 0;
  
const intervalId = setInterval(() => {
  console.log('HELLO GEEK');
  count++;
  
  if (count === 5) {
    console.log('Clearing the interval id after 5 executions');
    clearInterval(intervalId);
  }
}, 1000);

输出:

示例 3:在此示例中,我们将看到使用传递给 setInterval() 的参数。在延迟参数之后传递给 setInterval() 方法的参数由我们的函数接收,并且可以以所需的方式使用。下面提到的代码借助一个简单的代码示例对其进行了演示。

索引.js

let count = 0;
  
// The arguments passed after the 
// delay (in milliseconds) will
// be received in our function 
// inside the setInterval() method
const intervalId = setInterval(
  (a, b) => {
    console.log(`The sum of ${a} and ${b} is ${a + b}`);
    count++;
  
    if (count === 5) {
      console.log("Clearing the interval id after 5 executions");
      clearInterval(intervalId);
    }
  },
  1000,
  5,
  10
);

输出: