当前位置:首页 > JavaScript

js 实现休眠

2026-03-13 22:18:49JavaScript

在JavaScript中实现休眠(暂停代码执行)可以通过多种方式实现,以下是常见的方法:

使用 setTimeoutPromise

通过结合 setTimeoutPromise 实现异步休眠,避免阻塞主线程。

js 实现休眠

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
  console.log('开始休眠');
  await sleep(2000); // 休眠2秒
  console.log('休眠结束');
}
demo();

使用 setTimeout 回调

传统的回调方式实现休眠,适用于非异步环境。

js 实现休眠

function sleep(ms, callback) {
  setTimeout(callback, ms);
}

console.log('开始休眠');
sleep(2000, () => {
  console.log('休眠结束');
});

使用 Atomics.wait(Node.js 环境)

在Node.js中可以通过 Atomics.wait 实现同步休眠,但会阻塞主线程。

function sleep(ms) {
  const sharedBuffer = new SharedArrayBuffer(4);
  const sharedArray = new Int32Array(sharedBuffer);
  Atomics.wait(sharedArray, 0, 0, ms);
}

console.log('开始休眠');
sleep(2000); // 休眠2秒
console.log('休眠结束');

使用 while 循环(不推荐)

通过循环阻塞主线程实现休眠,但会严重消耗CPU资源。

function sleep(ms) {
  const start = Date.now();
  while (Date.now() - start < ms) {}
}

console.log('开始休眠');
sleep(2000); // 休眠2秒
console.log('休眠结束');

注意事项

  • 推荐使用 PromisesetTimeout 组合的方式,避免阻塞主线程。
  • Atomics.wait 仅适用于Node.js环境,且会阻塞主线程。
  • while 循环方式会严重降低性能,不建议在生产环境中使用。

标签: js
分享给朋友:

相关文章

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…