📅  最后修改于: 2023-12-03 14:42:36.997000             🧑  作者: Mango
在编写 Javascript 程序的过程中,我们有时需要程序暂停一段时间,等待某些操作完成,而 JavaScript 没有原生支持 sleep 的功能。该如何实现呢?本文将为大家介绍如何使用 setTimeout 函数来实现 Javascript 版本的 sleep。
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
sleep 函数返回一个 Promise,可以在异步函数中 await 它来暂停执行一段时间。例如:
async function doSomething() {
console.log("开始执行操作 A");
await sleep(2000);
console.log("暂停 2 秒后,执行操作 B");
}
在上面的代码中,操作 B 将在执行了 2 秒的 sleep 后才开始执行。
setTimeout 函数是 JavaScript 的原生函数,它可以在一定时间后执行指定的函数。我们使用 Promise 将其封装成一个可暂停的函数。当调用 sleep 函数时,会返回一个 Promise 对象,该对象会在经过指定的时间后调用 resolve 函数,从而使该 Promise 进入 resolved 状态。await 关键字可以让程序暂停执行,直到该 Promise 进入 resolved 状态。
JavaScript 版本的 sleep 可以通过封装 setTimeout 函数实现。它可以在异步函数中用于暂停执行一段时间,等待某些操作完成。是编写异步代码时非常有用的工具。