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