24 lines
836 B
TypeScript
24 lines
836 B
TypeScript
/**
|
|
* 统一延时工具
|
|
* 所有延时调用必须通过此模块,禁止在其他文件中直接使用 setTimeout 或自定义 delay
|
|
*/
|
|
|
|
/** 延时等级 */
|
|
export type DelayLevel = "low" | "mid" | "high" | "max"
|
|
|
|
/** 各等级对应的毫秒数(统一在此处调整) */
|
|
const DELAY_MS: Record<DelayLevel, number> = {
|
|
low: 50, // <100ms 场景:微等待,点击后极短暂停
|
|
mid: 200, // 100~300ms 场景:等待 DOM 更新、弹出层渲染
|
|
high: 500, // >300ms 场景:等待接口返回、搜索结果、动画完成
|
|
max: 2000, // >2000ms 场景:特殊超长延时(谨慎使用)
|
|
}
|
|
|
|
/**
|
|
* 统一延时函数
|
|
* @param level 延时等级:low / mid / high / max
|
|
*/
|
|
export function delay(level: DelayLevel): Promise<void> {
|
|
return new Promise((resolve) => setTimeout(resolve, DELAY_MS[level]))
|
|
}
|