当前位置:首页 > JavaScript

js实现sleep暂停

2026-03-15 17:24:10JavaScript

实现 sleep 暂停的方法

在 JavaScript 中,没有内置的 sleep 函数,但可以通过以下几种方式实现类似功能。

使用 setTimeout 和回调

通过 setTimeout 结合回调函数实现延迟执行。

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

sleep(() => {
  console.log('执行延迟操作');
}, 1000);

使用 Promise 和 async/await

通过 Promiseasync/await 实现更简洁的异步延迟。

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

async function run() {
  console.log('开始');
  await sleep(1000);
  console.log('延迟 1 秒后执行');
}

run();

使用生成器函数

通过生成器函数和 yield 实现延迟控制。

function* sleepGenerator(delay) {
  yield new Promise(resolve => setTimeout(resolve, delay));
}

const gen = sleepGenerator(1000);
gen.next().value.then(() => {
  console.log('延迟 1 秒后执行');
});

使用 Atomics.wait

通过 Atomics.wait 实现同步阻塞(仅适用于 Node.js 环境)。

function sleep(delay) {
  const sharedArray = new SharedArrayBuffer(4);
  const sharedView = new Int32Array(sharedArray);
  Atomics.wait(sharedView, 0, 0, delay);
}

console.log('开始');
sleep(1000);
console.log('延迟 1 秒后执行');

使用 busy-waiting(不推荐)

通过循环占用 CPU 实现阻塞,但会严重影响性能。

js实现sleep暂停

function sleep(delay) {
  const start = Date.now();
  while (Date.now() - start < delay) {}
}

console.log('开始');
sleep(1000);
console.log('延迟 1 秒后执行');

注意事项

  • 在浏览器环境中,推荐使用 Promiseasync/await,避免阻塞主线程。
  • 在 Node.js 中,可以使用 Atomics.waitsetTimeout
  • 避免使用 busy-waiting,因为它会严重降低性能。

标签: jssleep
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现复制功能

js实现复制功能

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

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现游标

js实现游标

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