標籤:log 執行 outer media time glob div span node.js
1 Node.js提供了四種形式的定時器 2 global.setTimeout(); //一次性定時器 3 global.setInterval(); //周期性定時器 4 global.nextTick(); //本次事件迴圈結束時立即執行的定時器 5 global.setImmediate(); //下次事件迴圈立即執行的定時器 6 7 var i=1; 8 setTimeout(()=>{ 9 console.log(i);10 },1000);11 12 //1秒之後,列印出0,1,2,3,413 for(var i=1;i<=3;i++){14 setTimeout(()=>{15 console.log(i)16 },1000)17 }18 19 //閉包20 21 for(var i=1; i<=3; i++){22 setTimeout(outer(i),1000) //定期定時器23 }24 function outer(num){25 return function(){26 console.log(num)27 };28 }29 30 //使用箭頭函數完成上面的閉包功能31 32 for(var i=1;i<=3;i++){33 setTimeout(((num)=>{34 return ()=>{console.log(num);}})(i),1000)35 }36 37 setInterval 周期性定時器38 var count=0;39 var timer=setInterval(function(){40 count++;41 console.log(‘%d hello‘,count);42 if(count>5){43 clearInterval(timer);44 }45 },1000);46 47 //setTimeout 一次性定時器48 var count2=0;49 var timer2=setTimeout(function(){50 count2++;51 if(count2<=5){52 console.log(‘%d hello‘,count2);53 setTimeout(arguments.callee,1000); //arguments54 }else{55 clearTimeout(timer2);56 }57 },1000)
1 //setImmediate(); 下次事件迴圈立即執行的定時器 2 setImmediate(function(){ 3 console.log(‘Immediate 1.....‘); 4 }); 5 process.nextTick(function(){ 6 console.log(‘nextTick 1......‘); 7 }); 8 setTimeout(function(){console.log(‘setTimeout 2....‘)},1000) 9 process.nextTick(function(){10 console.log(‘nextTick 2......‘);11 });12 setImmediate(function(){13 console.log(‘nextTick 3......‘);14 });15 console.log(‘end....‘);
Node.js-提供了四種形式的定時器