当前位置:首页 > JavaScript

js 实现延时执行

2026-03-15 22:34:33JavaScript

使用 setTimeout 实现基础延时

setTimeout 是 JavaScript 中最常用的延时执行方法。它接受一个回调函数和延时时间(毫秒),在指定时间后执行回调。

setTimeout(() => {
  console.log('延时1秒后执行');
}, 1000);

结合 Promise 实现异步延时

通过封装 setTimeout 为 Promise 对象,可以更好地配合 async/await 使用:

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

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

使用 async/await 实现串行延时

在需要连续延时执行的场景下,async/await 能保持代码的线性逻辑:

async function sequentialDelays() {
  await delay(1000);
  console.log('第一步完成');

  await delay(1500);
  console.log('第二步完成');
}

通过 clearTimeout 取消延时

保存 setTimeout 返回的 timer ID,可以在需要时取消未执行的延时:

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

clearTimeout(timerId);

递归实现循环延时

替代 setInterval 的方案,通过递归调用实现可控的循环延时:

function repeatWithDelay(fn, delayMs, times) {
  if(times <= 0) return;

  setTimeout(() => {
    fn();
    repeatWithDelay(fn, delayMs, times - 1);
  }, delayMs);
}

浏览器环境下的 requestAnimationFrame

对于需要与屏幕刷新率同步的动画场景,requestAnimationFrame 提供更精确的延时控制:

js 实现延时执行

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

  function frame(timestamp) {
    const elapsed = timestamp - start;
    if(elapsed < 1000) {
      requestAnimationFrame(frame);
    } else {
      console.log('1秒后执行动画');
    }
  }

  requestAnimationFrame(frame);
}

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js 实现链表

js 实现链表

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

js jquery

js jquery

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

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…