LeetCode(4)--2621. 睡眠函数

99 阅读1分钟

请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。

示例 1:

输入: millis = 100
输出: 100
解释:
在 100ms 后此异步函数执行完时返回一个 Promise 对象
let t = Date.now();
sleep(100).then(() => {
  console.log(Date.now() - t); // 100
});

示例 2:

输入: millis = 200
输出: 200
解释: 在 200ms 后函数执行完时返回一个 Promise 对象

 

提示:

  • 1 <= millis <= 1000

 

参考方案:

 当使用 JavaScript 编写异步函数时,我们可以使用 setTimeout 函数来实现休眠功能。下面是一个示例的异步函数,它接收一个正整数参数 millis ,并在指定的时间后完成异步操作:

/**
 * @param {number} millis
 * @return {Promise}
 */
async function sleep(millis) {
   return new Promise( resolve => setTimeout(resolve , millis))
    
}

/** 
 * let t = Date.now()
 * sleep(100).then(() => console.log(Date.now() - t)) // 100
 */
 
 
 // 使用示例
 async function example() { 
       console.log('开始休眠'); 
       await sleep(3000); // 休眠 3000 毫秒 
       console.log('休眠结束'); 
       }
       
  example();

 

方案说明: 在上面的代码中,我们定义了一个名为 sleep 的异步函数,它返回一个 Promise 对象。在函数内部,我们使用 setTimeout 函数来延迟指定的时间,然后通过 resolve 将 Promise 标记为已完成。 在 example 函数中,我们展示了如何使用 sleep 函数来实现休眠功能。首先,我们打印出 "开始休眠",然后通过 await sleep(3000) 来让代码在此处等待 3000 毫秒。最后,我们打印出 "休眠结束"。 请注意,由于 sleep 函数是异步的,我们需要在调用它的函数前面加上 async 关键字,并使用 await 来等待异步操作的完成。  

LeetCode运行:

leetcode.cn/problems/sl…