[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);
}
  • 블록킹되길 원하는 시간을 인자로 전달하면 해당 시간만큼 반복문이 돌아서 코드가 실행되지 않도록 한다
출처


댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?