@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: 停止所有回调函数,并清空计时器。