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);
输出:
示例2: 在这个示例中,我们将使用clearInterval()函数来实现有限次数的执行。如果我们希望函数只执行有限次数,我们可以使用clearInterval()方法。我们可以通过将从setInterval()方法返回的间隔ID传递给clearInterval()方法来清除间隔。
语法:
clearInterval(intervalId)
下面的代码示例演示了使用clearInterval()方法来实现函数的有限重复执行。
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);
输出:
示例3: 在这个示例中,我们会看到使用传递给setInterval()的参数。在delay参数之后传递给setInterval()方法的参数会被我们的函数接收,并可以按照需要进行使用。下面的代码示例演示了如何使用一个简单的代码示例来实现这一点。
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
);
输出: