当前位置:首页 > JavaScript

js实现sleep暂停

2026-02-02 17:06:40JavaScript

在JavaScript中实现类似其他语言的sleep暂停功能,可以通过以下几种方式实现:

使用setTimeoutPromise

通过结合PromisesetTimeout实现异步暂停,适用于现代JavaScript环境:

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(callback, ms) {
  setTimeout(callback, ms);
}

// 使用示例
sleep(() => {
  console.log("暂停后执行");
}, 1000);

同步阻塞方案(不推荐)

通过循环阻塞主线程实现同步暂停,但会严重影响性能:

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

// 使用示例(谨慎使用)
console.log("开始阻塞");
sleepSync(3000); // 阻塞3秒
console.log("阻塞结束");

注意事项

  • 异步方案(Promise/setTimeout)是非阻塞的,适合大多数场景。
  • 同步方案会冻结页面,仅适用于特殊场景如Web Worker。
  • Node.js环境可使用util.promisify(setTimeout)简化实现。

js实现sleep暂停

标签: jssleep
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

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

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现倒计时

js实现倒计时

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

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js实现继承

js实现继承

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

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…