JS와 마찬가지로 Node.js에도 타이머, 타임아웃 타이머, 간격 타이머, 적시 타이머 및 이벤트 예약을 구현하는 process.nextTick(콜백) 함수가 있습니다. 오늘은 setTimeout과 setInterval의 사용법을 배워보겠습니다.
1. setTimeout 시간 제한 타이머(GCD의 이후와 유사)
node.js에서는 node.js에 내장된 setTimeout(callback, DelayMillSeconds, [args]) 메서드를 사용할 수 있습니다. . setTime()이 호출되면 콜백 함수는
DelayMillSeconds 이후에 실행됩니다. setTime()은 타이머 개체 ID를 반환하며, 이는 DelayMillSeconds가 만료되기 전에 해당 ID를 ClearTimeout(timeoutId)에 전달하여 취소할 수 있습니다.
function myfunc(){ console.log("myfunc"); }; var mytimeout=setTimeout(myfunc,1000); clearTimeout(mytimeout);
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js Process finished with exit code 0
clearTimeout(mytimeout); 줄에 주석을 달면 myfunc()이 실행되는 것을 볼 수 있습니다.
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js myfunc Process finished with exit code 0
2. setInterval 간격 타이머(GCD의 dispatch_source_t 또는 NSTimer와 유사)
간격 타이머는 일정한 간격으로 작업을 수행하는 데 사용되며 setTimeout도 마찬가지입니다. Node.js에는 타이머 객체 ID를 생성 및 반환하고,clearInterval()을 통해 취소하는 setInterval(callback, DelayMilliSecond, [args])이 내장되어 있습니다.
/** * Created by Administrator on 2016/3/11. */ function myfunc(Interval){ console.log("myfunc "+Interval); } var myInterval=setInterval(myfunc,1000,"Interval"); function stopInterval(){ clearTimeout(myInterval); //myInterval.unref(); } setTimeout(stopInterval,5000);
위 코드는 setInterval의 콜백 함수를 생성하는 코드입니다. 매개변수는 Interval입니다. setInterval은 1초마다 실행됩니다. 콜백 함수는 간격을 설정합니다. 타이머.
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Interval.js myfunc Interval myfunc Interval myfunc Interval myfunc Interval Process finished with exit code 0
3. 이벤트 루프에서 타이머 참조를 취소합니다
이벤트 큐에 타이머 콜백 함수만 있는 경우 더 이상 실행하지 않으려면 setInterval 및 setTimeout을 사용하면 객체의 unref() 함수를 반환하여 이벤트 루프에 계속하지 말라고 알릴 수 있습니다.
unref()를 setTimeout과 함께 사용하는 경우 이벤트 루프를 깨우기 위해 독립 타이머를 사용해야 합니다. 과도한 사용도 성능에 영향을 미치므로 가능한 한 적게 사용합니다.
4. setTimeout과 setInterval의 실행 시간이 정확하지 않습니다
일정 간격으로 이벤트 큐에 콜백을 추가하고 실행도 너무 정확하지 않습니다
function simpleTimeout(consoleTime) { console.timeEnd(consoleTime); } console.time("twoSecond"); setTimeout(simpleTimeout,2000,"twoSecond"); console.time("oneSecond"); setTimeout(simpleTimeout,1000,"oneSecond"); console.time("fiveSecond"); setTimeout(simpleTimeout,5000,"fiveSecond"); console.time("50MillSecond"); setTimeout(simpleTimeout,50,"50MillSecond");
위 코드를 여러 번 실행하면 출력 결과가 달라집니다.
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js 50MillSecond: 51ms oneSecond: 1000ms twoSecond: 2002ms fiveSecond: 5001ms Process finished with exit code 0
위 내용은 이 기사의 전체 내용입니다. Node.js에서 setTimeout 및 setInterval을 사용하는 방법을 배우는 것이 모든 사람에게 도움이 되기를 바랍니다.
Node.js에서 setTimeout 및 setInterval을 빠르게 익히는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!