@tanzerfe/tasktimer
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@tanzerfe/tasktimer

@tanzerfe/tasktimer 是一个轻量级 TypeScript 库,用于管理全局计时任务。支持动态注册、卸载回调函数,并通过分组管理回调任务。

特性

  • 动态注册回调: 根据时间间隔动态注册回调函数
  • 循环调用: 支持回调函数的循环执行
  • 分组管理: 可以通过分组标识管理和卸载一组回调函数

安装

# 使用 pnpm 或使用 npm、yarn
pnpm install @tanzerfe/tasktimer

使用

### 注册回调函数

你可以使用 `registerCallback` 方法来注册一个回调函数。此方法会返回一个唯一的 ID,用于后续的动态卸载。

```typescript
import { TaskTimer } from '@tanzerfe/tasktimer';

// 注册一个每秒执行的回调,并立即执行一次
const id1 = TaskTimer.registerCallback(() => {
  console.log('Callback every 1 second, with immediate and repeat');
}, { time: 1000, log: true});

// 注册一个2秒钟后执行的回调,仅执行一次
const id2 = TaskTimer.registerCallback(() => {
  console.log('Callback after 2 seconds, one time, with immediate');
}, { time: 2000, repeat: false, immediate: false });

动态卸载回调函数

可以通过唯一的 ID 来卸载一个回调函数:

setTimeout(() => {
  TaskTimer.unregisterCallback(id1);
  console.log('Unregistered the first callback');
}, 5000);

通过分组卸载回调函数

还可以通过分组标识来卸载一组回调函数:

TaskTimer.registerCallback(() => {
  console.log('Grouped Callback');
}, {
  time: 1000,
  group: 'group1',
  repeat: true,
  log: true
});

// 卸载分组中的所有回调函数
TaskTimer.unregisterCallbackByGroup('group1');

重置/销毁计时器

调用 destroy 方法来停止所有计时任务并清空回调函数:

TaskTimer.destroy();
console.log('All callbacks cleared and timer stopped.');

配置项

在注册回调函数时,可以通过 CallbackOptions 对象传递以下配置项:

  • time (number, 必填): 指定回调函数的执行时间间隔(毫秒)。
  • group (string, 可选): 用于对回调函数进行分组管理的标识符。默认值为 'default'
  • immediate (boolean, 可选): 是否在计时开始前立即执行回调函数。默认值为 true
  • repeat (boolean, 可选): 是否重复执行回调函数。默认值为 true
  • log (boolean, 可选): 是否在控制台中记录回调函数的执行情况。默认值为 false

方法

  • registerCallback(callback: () => void, options: CallbackOptions): string: 注册一个回调函数,并返回一个唯一的 ID。
  • unregisterCallback(id: string): void: 卸载指定 ID 的回调函数。
  • unregisterCallbackByGroup(group: string): void: 卸载指定分组的所有回调函数。
  • destroy(): void: 停止所有回调函数,并清空计时器。

Readme

Keywords

none

Package Sidebar

Install

npm i @tanzerfe/tasktimer

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

10.2 kB

Total Files

7

Last publish

Collaborators

  • jpjia
  • fxjsee
  • gstanzerfe