mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-09-22 14:59:59 +08:00
fix(editor): getTMagicApp中对runtime-ready可能存在多次事件监听
This commit is contained in:
parent
1f7ad2fbb8
commit
444858491d
@ -215,6 +215,8 @@ export const initServiceEvents = (
|
|||||||
((event: 'update:modelValue', value: MApp | null) => void),
|
((event: 'update:modelValue', value: MApp | null) => void),
|
||||||
{ editorService, codeBlockService, dataSourceService, depService }: Services,
|
{ editorService, codeBlockService, dataSourceService, depService }: Services,
|
||||||
) => {
|
) => {
|
||||||
|
let getTMagicAppPrimise: Promise<TMagicCore | undefined> | null = null;
|
||||||
|
|
||||||
const getTMagicApp = (): Promise<TMagicCore | undefined> => {
|
const getTMagicApp = (): Promise<TMagicCore | undefined> => {
|
||||||
const renderer = editorService.get('stage')?.renderer;
|
const renderer = editorService.get('stage')?.renderer;
|
||||||
if (!renderer) {
|
if (!renderer) {
|
||||||
@ -225,19 +227,25 @@ export const initServiceEvents = (
|
|||||||
return Promise.resolve(renderer.runtime.getApp?.());
|
return Promise.resolve(renderer.runtime.getApp?.());
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise<TMagicCore | undefined>((resolve) => {
|
if (getTMagicAppPrimise) {
|
||||||
|
return getTMagicAppPrimise;
|
||||||
|
}
|
||||||
|
|
||||||
|
getTMagicAppPrimise = new Promise<TMagicCore | undefined>((resolve) => {
|
||||||
// 设置 10s 超时
|
// 设置 10s 超时
|
||||||
const timeout = globalThis.setTimeout(() => {
|
const timeout = globalThis.setTimeout(() => {
|
||||||
resolve(void 0);
|
resolve(void 0);
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
|
||||||
renderer.on('runtime-ready', () => {
|
renderer.once('runtime-ready', () => {
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
globalThis.clearTimeout(timeout);
|
globalThis.clearTimeout(timeout);
|
||||||
}
|
}
|
||||||
resolve(renderer.runtime?.getApp?.());
|
resolve(renderer.runtime?.getApp?.());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return getTMagicAppPrimise;
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateStageNodes = (nodes: MComponent[]) => {
|
const updateStageNodes = (nodes: MComponent[]) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user