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


**定时器**模块包含可在一段时间后执行代码的函数。您无需显式导入**定时器**模块,因为它在模拟的浏览器 JavaScript API 中已全局可用。

**定时器**模块主要分为两类

  • **定时调度** – 此定时器将任务安排在某个时间点后执行。

    • setImmediate()

    • setInterval()

    • setTimeout()

  • **取消定时器** – 这种类型的定时器取消了已设置要执行的计划任务。  

    • clearImmediate()

    • clearInterval()

    • clearTimeout()

定时调度

1. setTimeout() 方法

**setTimeout()** 方法在指定毫秒数后安排代码执行。只有在超时发生后,才会执行代码。指定的函数将仅执行一次。此方法返回一个 ID,可用于 **clearTimeout()** 方法。

语法

setTimeout(function, delay, [args])

示例 1

let str = 'TutorialsPoint!';

setTimeout(function () {
   // Will be printed after 2 seconds
   return console.log(str);
}, 2000);

// This will be printed immediately
console.log('Executing setTimeout() method');

输出

Executing setTimeout() method
TutorialsPoint!

2. setImmediate() 方法

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

语法

setImmediate(function, [args])

示例

文件名 - immediate.js

// Setting timeout for the function
setTimeout(function () {
   console.log('setTimeout() function running');
}, 5000);

// Running this function immediately before any other
setImmediate(function () {
   console.log('setImmediate() function running');
});
// Directly printing the statement
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() Example

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() Example

var si = setInterval(function A() {
   return console.log("Setting Intevals for 500 ms !");
}, 500);

// Cleared the interval from 1000 ms
setTimeout(function() {
   clearInterval(si);
}, 1000);

输出

Setting Intevals for 500 ms !

6. clearTimeout() 方法

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

语法

clearTimeout(timerObject)

示例

文件名 - clearTimeout.js

// clearTimeout() Example

var timer = setTimeout(function A() {
   return console.log("Hello TutorialsPoint!");
}, 500);

// timer2 will be executed
var timer2 = setTimeout(function B() {
   return console.log("Welcome to TutorialsPoint!");
}, 500);
clearTimeout(timer);

输出

Welcome to TutorialsPoint!

更新于: 2021-10-27

423 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告