当前位置:首页 > JavaScript

js实现延时

2026-04-05 23:42:52JavaScript

使用 setTimeout 实现延时

setTimeout 是 JavaScript 中最常用的延时方法,用于在指定的毫秒数后执行函数或代码片段。

setTimeout(() => {
  console.log('这段代码将在 1000 毫秒后执行');
}, 1000);

可以传递参数给回调函数:

setTimeout((param1, param2) => {
  console.log(param1, param2);
}, 1000, '参数1', '参数2');

使用 Promise 实现延时

结合 Promise 可以创建更可控的延时逻辑,特别适合在 async/await 中使用。

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

async function delayedAction() {
  console.log('开始');
  await delay(2000);
  console.log('2秒后执行');
}

使用 async/await 处理延时

async/await 语法让延时逻辑更清晰,避免回调地狱。

async function processWithDelay() {
  await new Promise(resolve => setTimeout(resolve, 1500));
  console.log('1.5秒后执行');
  return '完成';
}

取消延时执行

clearTimeout 可以取消尚未执行的延时操作。

const timeoutId = setTimeout(() => {
  console.log('这段代码不会执行');
}, 1000);

clearTimeout(timeoutId);

递归实现间隔延时

通过递归调用 setTimeout 可以实现类似 setInterval 的效果,但能更好地控制每次执行的间隔。

function repeatWithDelay(count, delay) {
  if (count <= 0) return;

  setTimeout(() => {
    console.log(`执行第 ${count} 次`);
    repeatWithDelay(count - 1, delay);
  }, delay);
}

浏览器环境下的 requestAnimationFrame

对于需要与屏幕刷新率同步的动画延时,requestAnimationFrame 是更好的选择。

function animateWithDelay(timestamp) {
  // 动画逻辑
  requestAnimationFrame(animateWithDelay);
}

requestAnimationFrame(animateWithDelay);

Node.js 环境的 setImmediate

在 Node.js 中,setImmediate 可以在当前事件循环结束后立即执行代码,作为零延迟的替代方案。

js实现延时

setImmediate(() => {
  console.log('在当前事件循环结束后执行');
});

标签: js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现目录

js实现目录

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