티스토리 뷰
728x90
Javascript로 일정 시간을 대기하거나, 지연시키려면 어떻게 해야 할까요?
Javascript는 기본적으로 sleep 함수를 지원하지 않기 때문에 직접 구현해야 합니다. 동기적인, 비동기적인 방법으로 delay(sleep) 함수를 구현하는 방법에 대해서 알아보겠습니다.
while로 sleep 구현
Date.now()는 현재 시간을 리턴하며, while로 다른 코드가 수행되지 않도록 하고 2초가 지났을 때 탈출하여 다음 코드가 실행되도록 만들 수 있습니다. whlie에서 명시적으로 시간을 체크하여 delay를 만드는 것이지만, 코드는 직관적입니다.
function sleep(ms) {
const start = Date.now();
while (Date.now() - start < ms) {}
}
console.log("Start");
sleep(2000);
console.log("Slept for 2 sec");
Output:
Start
Slept for 2 sec
Async 함수에서 sleep 구현
aync function에서 사용할 수 있는 sleep 함수는 아래와 같이 Promise와 setTimeout()을 사용하여 구현할 수 있습니다. await sleep(2000) 처럼 호출을 하면, 2000ms 동안 코드 실행이 지연됩니다.
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function main() {
console.log("Start");
await sleep(2000);
console.log("Slept for 2 sec");
}
main();
Output:
Start
Slept for 2 sec
728x90
'개발 > Javascript' 카테고리의 다른 글
[Javascript] 문자열이 숫자인지 확인 (1) | 2023.11.14 |
---|---|
[Javascript] 문자열 배열 정렬 (오름차순, 내림차순) (0) | 2023.11.07 |
[Javascript] 숫자 배열 정렬하기 (오름차순, 내림차순) (0) | 2023.11.06 |
[Javascript] 숫자 3자리마다 콤마(,) 찍기 (1) | 2023.10.29 |
[Javascript] 소수점 2자리로 반올림하기 (0) | 2023.10.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 다크스텀프
- java
- 12e 트램
- 15e 트램
- Python
- 주황버섯
- 파이썬
- 앞자리 0 제거
- Flutter
- 파란버섯
- 메이플랜드
- adb
- Skia
- 나무던전
- 모루정원
- 리스보아 카드
- javascript
- aosp 빌드
- 포르투
- 원숭이의숲
- 오블완
- 와일드보어의 땅
- 진료 병원 찾기
- 포르투갈
- 티스토리챌린지
- 리스본
- android
- DART
- 와보땅
- 네키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함