当前位置:首页 > JavaScript

js 实现休眠

2026-02-01 00:11:12JavaScript

实现休眠的方法

在JavaScript中,没有直接的休眠函数,但可以通过以下几种方式模拟休眠效果。

使用setTimeout和Promise

通过结合setTimeoutPromise,可以创建一个异步的休眠函数。

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

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

使用async/await

在异步函数中,await可以暂停代码执行,直到Promise完成。

(async () => {
  console.log('休眠前');
  await new Promise(resolve => setTimeout(resolve, 1000));
  console.log('休眠后');
})();

使用循环阻塞(不推荐)

虽然可以通过循环阻塞主线程实现休眠,但这种方法会严重影响性能,不建议使用。

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

注意事项

  • 异步休眠不会阻塞主线程,适合在需要等待但不影响其他操作时使用。
  • 循环阻塞会冻结页面,仅适用于极端情况或测试场景。

js 实现休眠

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

vue.js实现轮播

vue.js实现轮播

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

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以…

js实现继承

js实现继承

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