当前位置:首页 > 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实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…