当前位置:首页 > JavaScript

js sleep实现

2026-02-01 16:18:44JavaScript

实现 JavaScript 中的 sleep 功能

JavaScript 本身没有内置的 sleep 函数,但可以通过几种方法模拟类似效果。

使用 Promise 和 setTimeout

现代 JavaScript 通常使用 Promise 和 async/await 来实现 sleep 功能:

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

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

demo();

传统回调方式

在 ES6 之前,可以使用回调函数实现:

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

console.log('开始');
sleep(2000, function() {
  console.log('结束');
});

同步阻塞方式(不推荐)

这种方法会阻塞整个线程,通常不建议使用:

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

console.log('开始');
sleepSync(2000); // 阻塞2秒
console.log('结束');

使用 Atomics.wait

在 Node.js 环境中可以使用更底层的 API:

js sleep实现

function sleep(ms) {
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
}

注意这种方法只在特定环境下可用,且可能影响性能。

标签: jssleep
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

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

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js 实现链表

js 实现链表

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

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

利用js实现

利用js实现

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