Sleep
EasyUpdated: Aug 2, 2025
Practice on:
Problem
Given a positive integer millis, write an asynchronous function that sleeps for millis milliseconds. It can resolve any value.
Examples
Example 1
Input: millis = 100
Output: 100
Explanation: It should return a promise that resolves after 100ms.
let t = Date.now();
sleep(100).then(() => {
console.log(Date.now() - t); // 100
});
Example 2
Input: millis = 200
Output: 200
Explanation: It should return a promise that resolves after 200ms.
Constraints
1 <= millis <= 1000
Solution
Method 1 – Promise with setTimeout
Intuition
To "sleep" in JavaScript, return a Promise that resolves after a timeout.
Approach
- Use setTimeout to delay the resolution of a Promise by the given milliseconds.
- Return the Promise from the function.
Code
JavaScript
/**
* @param {number} millis
* @return {Promise<void>}
*/
function sleep(millis) {
return new Promise(resolve => setTimeout(resolve, millis));
}
Complexity
- ⏰ Time complexity:
O(1)— setTimeout is scheduled in constant time. - 🧺 Space complexity:
O(1)— No extra space used.