[Javascript] 대기 함수 만들기

2025. 6. 16. 09:00Javascript/Javascript

728x90
반응형




C 언어나 JAVA, Python에서는 입력한 시간만큼 코드의 실행을 멈추는 기능으로 sleep()이나 wait() 같은 함수를 지원한다. 하지만 자바스크립트엣는 이와 같은 함수들이 따로 존재하지 않으니 직접 개발자가 구현해 줘야 한다.


while문 활용


현재 날짜와 시간을 얻는 함수 Date.now()와 while문 조건으로 3초가 경과한 걸 확인하는 방법.

function wait(sec) {
    let start = Date.now(), now = start;
    while (now - start < sec * 1000) {
        now = Date.now();
    }
}

console.log(11)
wait(3);
console.log(22)





Promise 객체 활용​


우선 Promise 객체를 만들고 setTimeout으로 일정 시간 후에 resolve하게 한다. 이 비동기 Promise 함수를 await으로 동기 처리해 주면 마치 sleep과 같은 기능을 하게 된다.

function sleep(sec) {
  return new Promise(resolve => setTimeout(resolve, sec * 1000));
} // 함수 정의


(async () => {
  ... 코드1
  await sleep(2); // 2초대기
  ... 코드2
})();
// 최근 추가된 Top-Level Await 문법으로 인해 바로 await를 사용할수도 있다.
... 코드1
await sleep(2); // 2초대기
... 코드2












728x90
반응형