javascript
const sleep = (delay) => new Promise((resolve) => setTimeout(() => resolve(), delay));sleep 函数是一个用于在异步代码中引入延迟的工具。它通过返回一个 Promise,结合 setTimeout 来实现延迟。
工作原理
sleep 函数主要通过 Promise 和 setTimeout 来实现延迟。以下是工作流程:
- 调用
sleep(delay)时,函数会立即返回一个Promise对象。 setTimeout开始计时,当计时达到delay毫秒时,执行回调函数() => resolve()。resolve()被调用后,Promise状态变为fulfilled,表示延迟已结束。- 任何等待该
Promise的异步操作将继续执行。
使用示例
javascript
async function example() {
console.log("Start");
await sleep(2000); // 延迟2秒
console.log("End after 2 seconds");
}
example();在上面的示例中:
console.log("Start")立即执行。await sleep(2000)会暂停函数的执行 2 秒钟。- 2 秒钟后,
Promise完成,console.log("End after 2 seconds")执行,输出第二条信息。