当前位置:首页 > JavaScript

js sleep实现

2026-04-06 09:11:45JavaScript

js sleep实现

js sleep实现

实现 JavaScript 中的 sleep 功能

JavaScript 本身没有内置的 sleep 函数,但可以通过以下方法模拟类似功能:

使用 Promise 和 setTimeout

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

// 用法
async function demo() {
  console.log('开始');
  await sleep(2000);  // 暂停2秒
  console.log('结束');
}

demo();

使用 async/await 的循环

async function delayedLoop() {
  for (let i = 0; i < 5; i++) {
    console.log(i);
    await new Promise(res => setTimeout(res, 1000));
  }
}

delayedLoop();

传统回调方式

function sleepCallback(ms, callback) {
  setTimeout(callback, ms);
}

// 用法
console.log('开始');
sleepCallback(2000, () => {
  console.log('结束');
});

同步阻塞方式(不推荐)

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

// 用法
console.log('开始');
sleepSync(2000);  // 会阻塞整个线程
console.log('结束');

注意事项

  • 同步阻塞方式会冻结整个页面,只适合在 Node.js 命令行工具中使用
  • 大多数情况下推荐使用 Promise + async/await 方式
  • 浏览器环境中最小延迟通常为 4ms,即使设置更小值也无效

标签: jssleep
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

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

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现滚动

js实现滚动

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

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…