当前位置:首页 > JavaScript

js after 实现

2026-04-06 05:57:25JavaScript

实现延迟执行的方法

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

setTimeout

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

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

Promise与async/await

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

const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

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

requestAnimationFrame

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

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

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

取消延迟执行

如果需要取消已设置的延迟执行,可以使用对应的清除方法。

// setTimeout的清除
const timerId = setTimeout(() => {}, 1000);
clearTimeout(timerId);

// requestAnimationFrame的清除
const requestId = requestAnimationFrame(() => {});
cancelAnimationFrame(requestId);

循环延迟执行

使用setInterval可以实现周期性延迟执行。

const intervalId = setInterval(() => {
  console.log('每隔1秒执行一次');
}, 1000);

// 清除循环
setTimeout(() => {
  clearInterval(intervalId);
}, 5000);

现代API方案

较新的浏览器环境支持queueMicrotaskscheduler.postTask等API。

js after 实现

// 微任务延迟
queueMicrotask(() => {
  console.log('在当前事件循环的微任务阶段执行');
});

// 调度API(实验性特性)
if ('scheduler' in window) {
  scheduler.postTask(() => {
    console.log('优先级任务调度');
  }, { priority: 'user-blocking' });
}

标签: jsafter
分享给朋友:

相关文章

js实现分页

js实现分页

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

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…