当前位置:首页 > 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实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现滚动

js实现滚动

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

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…