当前位置:首页 > JavaScript

js 实现休眠

2026-02-01 00:11:12JavaScript

实现休眠的方法

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

js 实现休眠

使用setTimeout和Promise

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

js 实现休眠

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实现vue

js实现vue

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

js实现继承

js实现继承

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

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…