UNPKG

rabbit-simple-ui

Version:

A simple UI component library based on JavaScript

31 lines (27 loc) 1.27 kB
/** * 用于实例组件关闭后返回 promise,提供 then 接口在关闭后运行 callback * @param duration 组件关闭的时间,这里是用于组件没自己的配置项时,设为全局时间 * @param compConfig 组件的配置项,这里是用于是否切换为组件自己设置的时间 */ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export default function usePromiseCallback(duration: number, compConfig?: any): Promise<void> { // promise 触发的时机为默认时间 let timeout: number = duration; // 当组件参数以对象形式传递,并且设置了自己的 duration则修改 promise的触发时机 if (compConfig && typeof compConfig === 'object') { if (compConfig.duration || compConfig.duration === 0) { timeout = compConfig.duration; } else { timeout = duration; } } return promiseCb(timeout); } function promiseCb(duration: number): Promise<void> { let timer = null; return new Promise((afterClose) => { timer = setTimeout(afterClose, duration * 1000); // duration 为 0 则说明当前组件不自动关闭 duration === 0 ? clearTimeout(timer) : timer; }); }