...
자바스크립트 sleep(), wait() 대기 함수
보통 C언어, 자바, 파이썬에서 보면, 입력한 시간 만큼 코드의 실행을 멈추는 일반적인 기능으로 sleep()이나 wait() 같은 함수가 존재한다. 하지만 자바스크립트에선 따로 sleep()함수가 존재하지 않으니, 직접 개발자가 구현해주어야 한다.
while문 활용
시간날짜를 얻는 함수 Date() 와 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으로 시간 ms 후에 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
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.