[JS] setTimeout과 custom sleep
[JS] setTimeout과 custom sleep
- javascript에서 일정시간 후에 실행되었으면.. 하는 코드가 존재하게 된다
- 가장 먼저 떠오르는 건 setTimeout()함수이다
setTimeout(function(){
// 1초 후 작동해야할 코드
alert("hello world");
}, 1000);
- setTimeout()은 유용한 함수이지만, 스레드 자체가 1초동안 블록킹 되기를 바랄때는 사용할 함수가 아니다
- setTimeout()은 비동기 이벤트로 실행되는 함수로서 setTimeout()에 전달된 콜백함수는 1초뒤에 실행되겠지만, setTimeout()아래에 있는 코드는 곧바로 실행되기 때문이다
setTimeout(function(){
alert("hello world");
}, 1000);
alert("goodbye world");
- 스레드 자체가 블록킹되길 원할때는 그 스레드가 1초간 실행되어야할 함수를 호출해야한다
- 구글 javascript sleep으로만 검색해도 수천개의 코드가 나오는데 그 중 하나를 살펴보자
function sleep (delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
댓글
댓글 쓰기