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

js实现拖拽

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

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

链表实现js

链表实现js

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