当前位置:首页 > JavaScript

js after 实现

2026-02-01 13:09:08JavaScript

实现延迟执行的方法

在JavaScript中,可以通过多种方式实现延迟执行代码的效果。以下是几种常见的方法:

setTimeout函数

使用setTimeout函数是最直接的延迟执行方式。该函数接受一个回调函数和延迟时间(毫秒)作为参数。

js after 实现

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

Promise与async/await

结合Promise和async/await语法可以实现更优雅的延迟控制。

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

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

requestAnimationFrame

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

js after 实现

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

  function frame() {
    if (Date.now() - start >= 1500) {
      console.log('1.5秒后执行');
    } else {
      requestAnimationFrame(frame);
    }
  }
  requestAnimationFrame(frame);
}
delayedAnimation();

链式setTimeout

需要精确控制多次延迟执行时,可以采用链式调用的方式。

function sequentialDelays() {
  setTimeout(() => {
    console.log('第一次延迟1秒');

    setTimeout(() => {
      console.log('第二次延迟2秒');
    }, 2000);
  }, 1000);
}
sequentialDelays();

取消延迟执行

使用clearTimeout可以取消尚未执行的延迟操作。

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

clearTimeout(timerId);

每种方法适用于不同的场景:简单延迟使用setTimeout,需要精确帧同步时选择requestAnimationFrame,而异步流程控制则更适合使用Promise方案。根据具体需求选择最合适的实现方式。

标签: jsafter
分享给朋友:

相关文章

js实现复制功能

js实现复制功能

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

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…