推荐答案
-- -------------------- ---- ------- -------- --------- - ------ --- --------------- -- ------------------- ----- - -- ---- ----- -------- -------------- - ----------------------- ----- ------------ -- ---- -------------------- - ---------------
本题详细解读
1. 问题分析
sleep
函数的目标是让程序暂停执行指定的时间(以毫秒为单位)。在 JavaScript 中,由于它是单线程的,我们不能直接阻塞主线程,因此需要使用异步的方式来实现暂停。
2. 实现思路
- 使用
Promise
和setTimeout
结合来实现异步等待。 setTimeout
会在指定的时间后执行回调函数,而Promise
可以在回调函数执行时被resolve
,从而实现异步等待的效果。
3. 代码解析
sleep
函数返回一个Promise
,这个Promise
会在setTimeout
指定的时间后被resolve
。- 使用
await
关键字可以暂停异步函数的执行,直到Promise
被resolve
。 - 在
exampleUsage
函数中,await sleep(2000)
会让程序暂停 2 秒,然后继续执行后续代码。
4. 注意事项
sleep
函数只能在async
函数中使用,或者在Promise
链中使用。- 由于 JavaScript 是单线程的,
sleep
不会阻塞整个程序,只会暂停当前异步函数的执行。