Node.js – 定时器模块 – 调度定时器

所述定时器模块包含可在一定的时间段之后执行代码的功能。您不需要显式导入计时器模块,因为它已经在模拟浏览器 JavaScript API 中全局可用。

定时器模块主要分为两类

  • 调度计时器- 此计时器安排任务在某个时刻后发生。

    • setImmediate()

    • setInterval()

    • setTimeout()

  • 取消计时器- 这种类型的计时器取消设置为发生的计划任务。   

    • ClearImmediate()

    • clearInterval()

    • clearTimeout()

调度定时器

一、setTimeout()方法

setTimeout()方法在指定的毫秒数后调度代码执行。只有在超时发生后,代码才会被执行。指定的函数将只执行一次。此方法返回可在clearTimeout()方法中使用的 ID 。

语法

setTimeout(function, delay, [args])

示例 1

let str = 'nhooo!';

setTimeout(function () {
   // 将在 2 秒后打印
   return console.log(str);
}, 2000);

// 这将立即打印
console.log('Executing setTimeout() method');
输出结果
Executing setTimeout() method
nhooo!

2.setImmediate()方法

setImmediate() 在当前事件循环周期结束时执行代码。

语法

setImmediate(function, [args])

示例

文件名-immediate.js

// 设置函数超时
setTimeout(function () {
   console.log('setTimeout() function running');
}, 5000);

// 在任何其他函数之前立即运行此函数
setImmediate(function () {
   console.log('setImmediate() function running');
});
// 直接打印语句
console.log('Simple statement in the event loop');
输出结果
Simple statement in the event loop
setImmediate() function running
setTimeout() function running

3.setInterval()方法

setInterval()在指定的时间间隔后执行代码。该函数在间隔过去后执行多次。该函数将继续调用,直到进程在外部停止或在指定时间段后使用代码。

语法

setInterval(function, delay, [args])

示例

文件名 - interval.js

setInterval(function() {
   console.log('Tutoirals Point - SIMPLY LEARNING !');
}, 1000);
输出结果
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !
Tutoirals Point - SIMPLY LEARNING !

4.clearImmediate() 方法

此方法清除由该setImmediate()方法创建的立即计时器对象。

语法

clearImmediate(timer)

示例

文件名 - clearImmediate.js

// clearImmediate() 示例

var timer = setImmediate(function A() {
   console.log("Timer set");
});

clearImmediate(timer);
console.log("Timer cancelled");
输出结果
Timer cancelled

5.clearInterval()方法

此方法清除由该setInterval()方法创建的立即计时器对象。

语法

clearInterval(timer)

示例

文件名 - clearInterval.js

// clearInterval() 示例

var si = setInterval(function A() {
   return console.log("设置间隔为 500 毫秒!");
}, 500);

// 从 1000 ms 清除间隔
setTimeout(function() {
   clearInterval(si);
}, 1000);
输出结果
设置间隔为 500 毫秒!

6.clearTimeout() 方法

此方法清除由该setTimeout()方法创建的立即计时器对象。

语法

clearTimeout(timerObject)

示例

文件名 - clearTimeout.js

// clearTimeout() 示例

var timer = setTimeout(function A() {
   return console.log("你好教程点!");
}, 500);

// timer2 将被执行
var timer2 = setTimeout(function B() {
return console.log("欢迎来到 nhooo!");
}, 500);
clearTimeout(timer);
输出结果
欢迎来到 nhooo!