js sleep实现
实现 JavaScript 中的 sleep 功能
JavaScript 本身没有内置的 sleep 函数,但可以通过几种方法模拟类似效果。
使用 Promise 和 setTimeout
现代 JavaScript 通常使用 Promise 和 async/await 来实现 sleep 功能:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function demo() {
console.log('开始');
await sleep(2000); // 暂停2秒
console.log('结束');
}
demo();
传统回调方式
在 ES6 之前,可以使用回调函数实现:
function sleep(ms, callback) {
setTimeout(callback, ms);
}
console.log('开始');
sleep(2000, function() {
console.log('结束');
});
同步阻塞方式(不推荐)
这种方法会阻塞整个线程,通常不建议使用:
function sleepSync(ms) {
const start = Date.now();
while (Date.now() - start < ms) {}
}
console.log('开始');
sleepSync(2000); // 阻塞2秒
console.log('结束');
使用 Atomics.wait
在 Node.js 环境中可以使用更底层的 API:

function sleep(ms) {
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
}
注意这种方法只在特定环境下可用,且可能影响性能。






