当前位置:首页 > JavaScript

js实现延时执行

2026-03-01 15:12:42JavaScript

延时执行方法

在JavaScript中,延时执行可以通过多种方式实现,以下是几种常见的方法:

setTimeout

使用setTimeout函数可以在指定的毫秒数后执行代码:

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

Promise与async/await

js实现延时执行

结合Promise和async/await可以实现更清晰的延时逻辑:

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

async function delayedAction() {
  await delay(2000);
  console.log('这段代码将在2秒后执行');
}
delayedAction();

requestAnimationFrame

js实现延时执行

对于需要与浏览器渲染同步的延时操作,可以使用requestAnimationFrame

function delayedAnimation() {
  const start = Date.now();

  function frame() {
    if (Date.now() - start >= 1500) {
      console.log('1.5秒后执行的动画相关操作');
      return;
    }
    requestAnimationFrame(frame);
  }

  requestAnimationFrame(frame);
}
delayedAnimation();

setInterval与clearInterval

需要重复执行时可以使用setInterval,记得用clearInterval停止:

let counter = 0;
const intervalId = setInterval(() => {
  console.log(`每500ms执行一次,当前计数: ${++counter}`);
  if (counter >= 5) clearInterval(intervalId);
}, 500);

注意事项

  • 浏览器环境中最小延时实际为4ms(HTML5规范),即使设置更小值也会按4ms处理
  • Node.js环境没有这个限制,但实际精度取决于系统
  • 大量延时任务建议使用任务队列管理,避免性能问题
  • Web Worker适合处理长时间运行的延时任务,避免阻塞主线程

标签: js
分享给朋友:

相关文章

js 实现链表

js 实现链表

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

js实现预览

js实现预览

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

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…