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

高洛峰
풀어 주다: 2017-02-08 15:54:26
원래의
1285명이 탐색했습니다.

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 중국어 웹사이트에 주목하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿