当前位置:首页 > JavaScript

js实现休眠

2026-04-05 10:49:51JavaScript

在JavaScript中实现休眠(即暂停代码执行一段时间)可以通过以下几种方法实现:

js实现休眠

使用setTimeout与Promise结合

通过setTimeoutPromise结合实现异步休眠,适用于现代JavaScript(ES6+):

js实现休眠

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

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

使用setTimeout回调

传统方法通过setTimeout的回调函数实现休眠效果,但需注意这会异步执行后续代码:

console.log('开始休眠');
setTimeout(function() {
  console.log('休眠结束');
}, 2000); // 2秒后执行

同步阻塞方案(不推荐)

通过循环阻塞主线程实现同步休眠,但会严重损耗性能,仅适用于特殊场景:

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

console.log('开始同步休眠');
sleepSync(2000); // 阻塞2秒
console.log('同步休眠结束');

注意事项

  • 异步方案(Promise/setTimeout)不会阻塞主线程,适合大多数场景。
  • 同步方案会冻结页面交互,仅在Web Worker等非UI线程中可考虑使用。
  • 浏览器环境推荐优先使用requestAnimationFrame实现动画延迟而非休眠。

标签: js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现验证

js实现验证

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

使用js实现

使用js实现

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

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…