当前位置:首页 > JavaScript

js 实现sleep

2026-02-01 03:00:59JavaScript

在JavaScript中实现sleep功能可以通过多种方式实现,以下是几种常见的方法:

使用setTimeoutPromise

通过结合PromisesetTimeout,可以创建一个异步的sleep函数:

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

// 使用方式
async function demo() {
  console.log('开始等待');
  await sleep(2000); // 等待2秒
  console.log('等待结束');
}
demo();

使用async/await简化调用

async/await语法可以更清晰地处理异步等待:

(async () => {
  console.log('等待开始');
  await new Promise(resolve => setTimeout(resolve, 3000));
  console.log('等待结束');
})();

同步阻塞方式(不推荐)

如果需要同步阻塞(通常不推荐,因为会阻塞主线程),可以使用循环或Atomics.wait(仅限于Node.js或特定环境):

function sleepSync(ms) {
  const start = Date.now();
  while (Date.now() - start < ms) {}
}
console.log('开始阻塞');
sleepSync(3000); // 阻塞3秒
console.log('阻塞结束');

使用setTimeout回调(传统方式)

传统回调方式适用于不支持Promise的环境:

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

sleepWithCallback(2000, () => {
  console.log('回调执行');
});

注意事项

  • 异步sleep(如Promise)不会阻塞主线程,适合大多数场景。
  • 同步sleep会冻结整个页面,仅用于特殊需求或测试环境。
  • Node.js中可以使用util.promisify结合setTimeout进一步简化代码。

js 实现sleep

标签: jssleep
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…