实现一个函数 sleep(ms),暂停指定的时间

推荐答案

-- -------------------- ---- -------
-------- --------- -
  ------ --- --------------- -- ------------------- -----
-

-- ----
----- -------- -------------- -
  -----------------------
  ----- ------------ -- ----
  --------------------
-

---------------

本题详细解读

1. 问题分析

sleep 函数的目标是让程序暂停执行指定的时间(以毫秒为单位)。在 JavaScript 中,由于它是单线程的,我们不能直接阻塞主线程,因此需要使用异步的方式来实现暂停。

2. 实现思路

  • 使用 PromisesetTimeout 结合来实现异步等待。
  • setTimeout 会在指定的时间后执行回调函数,而 Promise 可以在回调函数执行时被 resolve,从而实现异步等待的效果。

3. 代码解析

  • sleep 函数返回一个 Promise,这个 Promise 会在 setTimeout 指定的时间后被 resolve
  • 使用 await 关键字可以暂停异步函数的执行,直到 Promiseresolve
  • exampleUsage 函数中,await sleep(2000) 会让程序暂停 2 秒,然后继续执行后续代码。

4. 注意事项

  • sleep 函数只能在 async 函数中使用,或者在 Promise 链中使用。
  • 由于 JavaScript 是单线程的,sleep 不会阻塞整个程序,只会暂停当前异步函数的执行。
纠错
反馈