Delay Function
Delay Function - Explanation
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
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(1)
Constant time regardless of input size
Space Complexity
O(1)
Uses almost no additional memory