当前位置:首页 > 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);

同步阻塞方案(不推荐)

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

js实现sleep暂停

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
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现乘法

js实现乘法

实现乘法运算的方法 在JavaScript中实现乘法运算可以通过多种方式完成,以下列举几种常见方法: 基础运算符 直接使用乘法运算符*是最简单的方式: let result = 3 * 5; //…