mirror of
https://gitee.com/ant-design-vue/ant-design-vue.git
synced 2024-12-05 13:39:40 +08:00
16 lines
472 B
TypeScript
16 lines
472 B
TypeScript
// eslint-disable-next-line no-restricted-imports
|
|
import { getCurrentInstance, nextTick, onMounted } from 'vue';
|
|
import type { Fn } from './types';
|
|
|
|
/**
|
|
* Call onMounted() if it's inside a component lifecycle, if not, just call the function
|
|
*
|
|
* @param fn
|
|
* @param sync if set to false, it will run in the nextTick() of Vue
|
|
*/
|
|
export function tryOnMounted(fn: Fn, sync = true) {
|
|
if (getCurrentInstance()) onMounted(fn);
|
|
else if (sync) fn();
|
|
else nextTick(fn);
|
|
}
|