>웹 프론트엔드 >JS 튜토리얼 >Node.js_node.js에서 setTimeout 및 setInterval 사용법을 빠르게 익히세요.

Node.js_node.js에서 setTimeout 및 setInterval 사용법을 빠르게 익히세요.

WBOY
WBOY원래의
2016-05-16 15:09:561523검색

JS와 마찬가지로 Node.js에도 타이머, 타임아웃 타이머, 간격 타이머, 적시 타이머 및 이벤트 예약을 구현하는 process.nextTick(콜백) 함수가 있습니다. 오늘은 setTimeout과 setInterval의 사용법을 배워보겠습니다.

1. setTimeout 타임아웃 타이머(GCD 이후와 유사)

node.js에서는 node.js에 내장된 setTimeout(callback, DelayMillSeconds, [args]) 메서드를 사용할 수 있습니다. setTime()을 호출할 때 콜백 함수는 DelayMillSeconds

이후에 발생합니다.

.setTime()을 실행하면 타이머 객체 ID가 반환됩니다. 이 ID는 DelayMillSeconds가 만료되기 전에 ClearTimeout(timeoutId)에 ID를 전달하여 취소할 수 있습니다.

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를 생성하고 반환하는 setInterval(callback, DelayMilliSecond, [args])이 내장되어 있으며, clearInterval( ) .

/**
 * 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이며, 1초마다 setTimeout이 실행됩니다. 해당 콜백 함수는 간격 타이머를 취소합니다.

"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을 사용하는 방법을 배우는 데 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.