Node.js定时器

Node.js有内置的定时API,本篇做相关介绍。

/*
* 时间定时器
*/

//一次性定时器
var timer1 =  setTimeout(function(){
    console.log("setTimeOut:2秒后触发");
},2000);

//清除定时器
//clearTimeout(timer1);

//周期性定时器
var timer2 = setInterval(() => {
   console.log("setInterval:每隔5秒触发一次"); 
}, 5000);

//清除定时器
//clearInterval(timer2);

//即时定时器
var timer3 = setImmediate(()=>{
    console.log("setImmediate:立即执行");   
});

//清除定时器
//clearImmediate(timer3);


//setTimeout设置0秒时,setImmediate以及与process.nextTick()执行顺序比较
setTimeout(() => {
    console.error("setTimeout");     
}, 0);

setImmediate(()=>{
    console.error("setImmediate");   
});
process.nextTick(()=>{
    console.error("process.nextTick"); 
});

运行结果如下:

值得注意的是, 

(1)process.nextTick()在当前阶段立即执行,而setImmediate()在下一次迭代或事件循环的tick事件上被触发,因此process.nextTick()的回调函数执行的优先级要高于setImmediate()

(2)setTimeout 0秒时与setImmediate()

 

Guess you like

Origin blog.csdn.net/hppyw/article/details/121828706