From 444858491da47c168ea2540cd718fabdca027781 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 21 May 2025 16:18:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20getTMagicApp=E4=B8=AD=E5=AF=B9ru?= =?UTF-8?q?ntime-ready=E5=8F=AF=E8=83=BD=E5=AD=98=E5=9C=A8=E5=A4=9A?= =?UTF-8?q?=E6=AC=A1=E4=BA=8B=E4=BB=B6=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/initService.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/editor/src/initService.ts b/packages/editor/src/initService.ts index a7fea7e8..ddbdad9b 100644 --- a/packages/editor/src/initService.ts +++ b/packages/editor/src/initService.ts @@ -215,6 +215,8 @@ export const initServiceEvents = ( ((event: 'update:modelValue', value: MApp | null) => void), { editorService, codeBlockService, dataSourceService, depService }: Services, ) => { + let getTMagicAppPrimise: Promise | null = null; + const getTMagicApp = (): Promise => { const renderer = editorService.get('stage')?.renderer; if (!renderer) { @@ -225,19 +227,25 @@ export const initServiceEvents = ( return Promise.resolve(renderer.runtime.getApp?.()); } - return new Promise((resolve) => { + if (getTMagicAppPrimise) { + return getTMagicAppPrimise; + } + + getTMagicAppPrimise = new Promise((resolve) => { // 设置 10s 超时 const timeout = globalThis.setTimeout(() => { resolve(void 0); }, 10000); - renderer.on('runtime-ready', () => { + renderer.once('runtime-ready', () => { if (timeout) { globalThis.clearTimeout(timeout); } resolve(renderer.runtime?.getApp?.()); }); }); + + return getTMagicAppPrimise; }; const updateStageNodes = (nodes: MComponent[]) => {