problemeasyalgorithmsleetcode-2621leetcode 2621leetcode2621

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

  1. Use setTimeout to delay the resolution of a Promise by the given milliseconds.
  2. 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.

Comments