当前位置:首页 > JavaScript

js 实现after

2026-03-14 10:51:59JavaScript

js 实现after

js 实现after

实现 after 方法

在 JavaScript 中,after 方法通常用于在指定次数后执行某个函数。以下是几种实现方式:

使用闭包实现

function after(times, func) {
  return function() {
    if (--times < 1) {
      return func.apply(this, arguments);
    }
  };
}

// 示例用法
const callAfter2 = after(2, function() {
  console.log('Called after 2 times');
});

callAfter2(); // 不执行
callAfter2(); // 输出: Called after 2 times

使用 ES6 类实现

class After {
  constructor(times, fn) {
    this.times = times;
    this.fn = fn;
  }

  call() {
    if (--this.times <= 0) {
      this.fn();
    }
  }
}

// 示例用法
const after = new After(3, () => console.log('Called after 3 times'));
after.call(); // 不执行
after.call(); // 不执行
after.call(); // 输出: Called after 3 times

使用 Promise 实现

function after(times) {
  let count = 0;
  return new Promise((resolve) => {
    const interval = setInterval(() => {
      count++;
      if (count >= times) {
        clearInterval(interval);
        resolve();
      }
    }, 1000);
  });
}

// 示例用法
after(3).then(() => console.log('Resolved after 3 seconds'));

使用 async/await 实现

async function after(times, callback) {
  let count = 0;
  while (count < times) {
    await new Promise(resolve => setTimeout(resolve, 1000));
    count++;
  }
  callback();
}

// 示例用法
after(2, () => console.log('Called after 2 seconds'));

这些实现方式可以根据具体需求选择使用。闭包方式适合简单的次数控制,类实现提供了更好的封装,Promise 和 async/await 适合处理异步场景。

标签: jsafter
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js轮播图实现原理

js轮播图实现原理

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

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…