@utilslib/core/createCancelableTimer
创建一个可取消的倒计时执行器
createCancelableTimer
函数签名
typescript
function createCancelableTimer(callback: AnyFunction, delay: number, onCancel: AnyFunction = NOOP)描述
创建一个可取消的倒计时执行器
参数
| 参数名 | 类型 | 可选 | 默认值 | 描述 |
|---|---|---|---|---|
callback | AnyFunction | 否 | - | - |
delay | number | 否 | - | - |
onCancel | AnyFunction | 是 | NOOP | - |
返回值
- 返回一个取消函数
点击查看源码
js
/**
* 空函数,用于占位符,不执行任何操作
*/
const NOOP = () => {};
/**
* 创建一个可取消的倒计时执行器
* @param {Function} callback - 倒计时结束后执行的回调函数
* @param {number} delay - 倒计时时间(毫秒)
* @returns {Function} - 返回一个取消函数
*/
export function createCancelableTimer(callback, delay, onCancel = NOOP) {
let timer = setTimeout(callback, delay);
return () => {
if (!timer) return;
clearTimeout(timer);
timer = null;
onCancel();
};
}ts
export type AnyFunction = (...args: any) => any;
/**
* 空函数,用于占位符,不执行任何操作
*/
const NOOP = () => {};
/**
* 创建一个可取消的倒计时执行器
* @param {Function} callback - 倒计时结束后执行的回调函数
* @param {number} delay - 倒计时时间(毫秒)
* @returns {Function} - 返回一个取消函数
*/
export function createCancelableTimer(
callback: AnyFunction,
delay: number,
onCancel: AnyFunction = NOOP,
) {
let timer: number | null = setTimeout(callback, delay);
return () => {
if (!timer) return;
clearTimeout(timer);
timer = null;
onCancel();
};
}如有错误,请提交issue :::