当前位置:首页 > JavaScript

js 实现暂停

2026-02-01 17:19:58JavaScript

实现 JavaScript 暂停功能的方法

在 JavaScript 中实现暂停功能通常需要模拟同步等待的效果,因为 JavaScript 是单线程语言,直接使用 sleep 会阻塞整个线程。以下是几种常见的方法:

使用 setTimeout 实现异步暂停

通过 setTimeout 可以实现非阻塞的延迟执行:

function pause(milliseconds) {
  return new Promise(resolve => setTimeout(resolve, milliseconds));
}

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

使用 Promiseasync/await

结合 Promiseasync/await 可以更优雅地实现暂停:

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

async function example() {
  console.log('第一步');
  await delay(1000);
  console.log('第二步');
}
example();

使用循环模拟同步暂停(不推荐)

这种方法会阻塞主线程,可能导致页面无响应:

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

console.log('开始');
sleep(3000); // 暂停3秒
console.log('结束');

使用 Generator 函数

通过 Generator 函数可以实现更复杂的暂停逻辑:

function* pausedExecution() {
  console.log('第一步');
  yield new Promise(resolve => setTimeout(resolve, 1000));
  console.log('第二步');
}

const generator = pausedExecution();
generator.next().value.then(() => generator.next());

注意事项

  • 避免在主线程中使用同步暂停方法,这会冻结页面。
  • 在 Node.js 环境中可以使用 util.promisifysetTimeout 结合。
  • 现代浏览器和 Node.js 都支持 async/await,推荐优先使用这种方法。

js 实现暂停

标签: js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

原生js实现轮播图

原生js实现轮播图

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

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inp…