当前位置:首页 > JavaScript

js实现sleep暂停

2026-02-02 17:06:40JavaScript

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

js实现sleep暂停

使用setTimeoutPromise

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

js实现sleep暂停

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)简化实现。

标签: jssleep
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…