From 2e2ff552f7f8efac4b350cd5c6a0a31dbc42668b Mon Sep 17 00:00:00 2001 From: kdletters Date: Wed, 16 Sep 2026 00:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 延后资源读取调用,避免阻塞 Direct Codex 首回合 --- .../src/view/project-development/index.tsx | 84 ++++++++++--------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/index.tsx b/apps/ai-game-creator-shell/src/view/project-development/index.tsx index b8fc97384..ce120c950 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/index.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/index.tsx @@ -2183,14 +2183,17 @@ export default function ProjectDevelopmentView({ hasSnapshot: canReuseSnapshot, }; }); - void invoke( - 'read_local_project_resource_graph', - { - projectPath, - expectedProjectId: manifest.projectId, - resources: resourceGraphInputs, - }, - ) + const readResourceGraph = () => + invoke( + 'read_local_project_resource_graph', + { + projectPath, + expectedProjectId: manifest.projectId, + resources: resourceGraphInputs, + }, + ); + void new Promise((resolve) => setTimeout(resolve, 0)) + .then(readResourceGraph) .then((readModel) => { if (!cancelled) { setResourceGraphState({ @@ -7199,41 +7202,42 @@ export default function ProjectDevelopmentView({ setResourceAssetGenerationTasksPanelOpen(false); resourceAssetGenerationPanelSubmissionRef.current = null; setResourceAssetGenerationPanelReopen(null); - void (async () => { - const reportUnavailable = () => { - if (!cancelled) { - setResourceWorkbenchNotice( - '生成任务列表读取失败,暂时无法恢复历史任务', - ); - } - }; - let records: LocalProjectAssetGenerationTaskRecord[]; - try { - const response = await invoke( - 'list_local_project_asset_generations', - { projectPath }, - ); - if (!Array.isArray(response)) { + void new Promise((resolve) => setTimeout(resolve, 0)).then( + async () => { + const reportUnavailable = () => { + if (!cancelled) { + setResourceWorkbenchNotice( + '生成任务列表读取失败,暂时无法恢复历史任务', + ); + } + }; + let records: LocalProjectAssetGenerationTaskRecord[]; + try { + const response = await invoke< + LocalProjectAssetGenerationTaskRecord[] + >('list_local_project_asset_generations', { projectPath }); + if (!Array.isArray(response)) { + reportUnavailable(); + return; + } + records = response; + } catch { reportUnavailable(); return; } - records = response; - } catch { - reportUnavailable(); - return; - } - if (cancelled) { - return; - } - const restored = mergeResourceCanvasAssetGenerationTasksWithRecords( - resourceAssetGenerationTasksRef.current.filter( - (task) => task.projectId === projectId, - ), - records, - ); - resourceAssetGenerationTasksRef.current = restored; - setResourceAssetGenerationTasks(restored); - })(); + if (cancelled) { + return; + } + const restored = mergeResourceCanvasAssetGenerationTasksWithRecords( + resourceAssetGenerationTasksRef.current.filter( + (task) => task.projectId === projectId, + ), + records, + ); + resourceAssetGenerationTasksRef.current = restored; + setResourceAssetGenerationTasks(restored); + }, + )(); return () => { cancelled = true; };