当前位置:首页 > JavaScript

js实现睡眠后执行js

2026-04-04 13:13:54JavaScript

使用 setTimeout 实现延迟执行

通过 setTimeout 可以在指定的时间后执行代码。第一个参数是回调函数,第二个参数是延迟的毫秒数。

setTimeout(() => {
  console.log('这段代码将在 3 秒后执行');
}, 3000);

使用 Promiseasync/await 实现睡眠

通过 Promiseasync/await 可以更优雅地实现睡眠功能,适用于需要在异步函数中暂停执行的情况。

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

async function delayedExecution() {
  console.log('开始执行');
  await sleep(2000); // 暂停 2 秒
  console.log('2 秒后执行');
}

delayedExecution();

使用 requestAnimationFrame 实现帧延迟

如果需要与浏览器的渲染帧同步,可以使用 requestAnimationFrame 实现延迟执行。

function sleepFrames(frames) {
  let count = 0;
  return new Promise(resolve => {
    function loop() {
      if (++count >= frames) {
        resolve();
      } else {
        requestAnimationFrame(loop);
      }
    }
    requestAnimationFrame(loop);
  });
}

async function delayedFrameExecution() {
  console.log('开始执行');
  await sleepFrames(60); // 暂停约 1 秒(假设 60 FPS)
  console.log('1 秒后执行');
}

delayedFrameExecution();

使用 Atomics.wait 实现高精度睡眠

Atomics.wait 可以在共享内存中实现高精度的睡眠,但需要注意浏览器兼容性和使用场景。

js实现睡眠后执行js

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

console.log('开始执行');
highPrecisionSleep(1000); // 暂停 1 秒
console.log('1 秒后执行');

注意事项

  • setTimeoutPromise 是常用的方法,兼容性好。
  • requestAnimationFrame 适用于与动画帧同步的场景。
  • Atomics.wait 需要谨慎使用,可能存在兼容性问题。
  • 避免在主线程中长时间阻塞,以免影响用户体验。

标签: 睡眠js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…