Delay Function

Delay Function - Explanation

쉬움 비동기 O(1) O(1)

Problem Summary

Write a function that returns a promise that resolves after a specified delay.

Go to Problem →

Detailed Explanation

이 문제는 **Promise**와 **setTimeout**을 결합하여 비동기 지연을 구현하는 방법을 학습합니다. **Promise란?** 비동기 작업의 완료(또는 실패)를 나타내는 객체입니다. pending, fulfilled, rejected 세 가지 상태가 있습니다. **Promise 생성자** `new Promise((resolve, reject) => { ... })` - resolve: 성공 시 호출 - reject: 실패 시 호출 **setTimeout과 Promise 연결** ```javascript new Promise(resolve => setTimeout(resolve, ms)); ``` setTimeout이 ms 밀리초 후에 resolve를 호출합니다. **사용 예시** ```javascript await delay(1000); console.log("1초 후 실행"); delay(2000).then(() => console.log("2초 후")); ``` **값 전달하기** ```javascript function delay(ms, value) { return new Promise(resolve => setTimeout(() => resolve(value), ms) ); } const result = await delay(1000, "hello"); // "hello" ``` **실용적 활용** - API 요청 간 간격 두기 - 애니메이션 타이밍 - 테스트에서 비동기 동작 시뮬레이션 - 디바운싱/스로틀링 구현

Solution Code

solution.js
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

Key Concepts from This Problem

1. Promise 생성
2. setTimeout
3. resolve 함수
4. 비동기 지연

Common Mistakes

resolve를 호출하지 않으면 Promise가 영원히 pending 상태입니다
ms는 밀리초 단위입니다 (1초 = 1000ms)
setTimeout의 콜백에서 this가 다를 수 있습니다

Hints

Hint 1: Promise와 setTimeout을 조합하세요.

Complexity Analysis

Time Complexity

O(1)

Constant time regardless of input size

Space Complexity

O(1)

Uses almost no additional memory

Related Tags

#비동기 #Promise #setTimeout