From 6cc81e3804b6801bd5c9ff075e785288859c3435 Mon Sep 17 00:00:00 2001 From: Stringadmin Date: Thu, 4 Jun 2026 21:07:48 +0800 Subject: [PATCH] Improve generation task client errors --- src/api/aiGenerationClient.ts | 4 ++-- src/api/taskSubscription.ts | 9 +++++---- src/api/webGenerationGateway.ts | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/api/aiGenerationClient.ts b/src/api/aiGenerationClient.ts index 4bd4d31..0afa038 100644 --- a/src/api/aiGenerationClient.ts +++ b/src/api/aiGenerationClient.ts @@ -159,7 +159,7 @@ function normalizeTaskStatus(status: AiTaskStatus["status"]): WebGenerationPrevi function taskTitle(task: AiTaskStatus): string { const prompt = typeof task.params?.prompt === "string" ? task.params.prompt.trim() : ""; if (prompt) return prompt.length > 20 ? `${prompt.slice(0, 20)}...` : prompt; - return task.type === "video" ? "视频生成任务" : "图像生成任务"; + return task.type === "video" ? "\u89c6\u9891\u751f\u6210\u4efb\u52a1" : "\u56fe\u50cf\u751f\u6210\u4efb\u52a1"; } function toPreviewTask(task: AiTaskStatus): WebGenerationPreviewTask { @@ -512,7 +512,7 @@ export const aiGenerationClient = { } const reader = res.body?.getReader(); - if (!reader) throw new Error("无法读取响应流"); + if (!reader) throw new Error("\u65e0\u6cd5\u8bfb\u53d6\u54cd\u5e94\u6d41"); const decoder = new TextDecoder(); let buffer = ""; diff --git a/src/api/taskSubscription.ts b/src/api/taskSubscription.ts index 7c1fa33..dc599de 100644 --- a/src/api/taskSubscription.ts +++ b/src/api/taskSubscription.ts @@ -54,15 +54,13 @@ export function waitForTask( if (event.status === "completed") { settle(() => resolve(event.resultUrl || null)); } else if (event.status === "failed" || event.status === "cancelled") { - settle(() => reject(new Error(event.error || "任务失败"))); + settle(() => reject(new Error(event.error || "任务失败,请稍后重试"))); } }; - // Try SSE first cleanup = aiGenerationClient.subscribeTaskStatus(taskId, handleUpdate); sseConnected = true; - // Fallback: if SSE doesn't deliver any event within 5s, switch to polling fallbackTimerId = setTimeout(() => { if (settled || !sseConnected) return; if (cleanup) cleanup(); @@ -72,7 +70,10 @@ export function waitForTask( function startPolling() { const poll = async () => { while (!settled) { - if (abortRef?.current) { settle(() => resolve(null)); return; } + if (abortRef?.current) { + settle(() => resolve(null)); + return; + } await new Promise((r) => setTimeout(r, POLL_INTERVAL)); if (settled || abortRef?.current) return; try { diff --git a/src/api/webGenerationGateway.ts b/src/api/webGenerationGateway.ts index 2944a15..16ae3e7 100644 --- a/src/api/webGenerationGateway.ts +++ b/src/api/webGenerationGateway.ts @@ -103,7 +103,7 @@ export const webGenerationGateway = { prompt, createdAt, source: "server", - errorMessage: err instanceof Error ? err.message : "请求失败", + errorMessage: err instanceof Error ? err.message : "请求失败,请稍后重试", }; } },