当前位置:首页 > JavaScript

js 实现休眠

2026-03-13 22:18:49JavaScript

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

使用 setTimeoutPromise

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

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

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

使用 setTimeout 回调

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

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资源。

js 实现休眠

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中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…