diff --git a/web/src/pages/create/index.tsx b/web/src/pages/create/index.tsx index 76cad33bf..786d2fc25 100644 --- a/web/src/pages/create/index.tsx +++ b/web/src/pages/create/index.tsx @@ -114,7 +114,7 @@ export default function CreatePage() { }); return () => { cancelled = true; - abortRef.current?.abort(); + // 页面卸载只停止当前页面的状态更新,后台任务由任务中心继续执行,返回页面后再恢复状态。 }; }, []); diff --git a/web/src/services/api/task-center.ts b/web/src/services/api/task-center.ts index b2be34082..12ab01757 100644 --- a/web/src/services/api/task-center.ts +++ b/web/src/services/api/task-center.ts @@ -195,8 +195,8 @@ export function listGenerationTasks(limit = 30, options?: { projectId?: string; return request(api.get("/tasks", { params: { limit, projectId: options?.projectId, activeOnly: options?.activeOnly || undefined } })); } -export function queryGenerationTask(id: string) { - return request(api.get(`/tasks/${encodeURIComponent(id)}`)); +export function queryGenerationTask(id: string, options?: { signal?: AbortSignal }) { + return request(api.get(`/tasks/${encodeURIComponent(id)}`, { signal: options?.signal })); } export function retryGenerationTask(id: string) { @@ -225,7 +225,7 @@ export async function waitForGenerationTask(id: string, options?: { signal?: Abo if (options?.signal?.aborted) throw new DOMException("Aborted", "AbortError"); let task: GenerationTask; try { - task = await queryGenerationTask(id); + task = await queryGenerationTask(id, { signal: options?.signal }); lastTask = task; lastQueryError = undefined; options?.onTaskUpdate?.(task);