Improve generation task client errors

This commit is contained in:
2026-06-04 21:07:48 +08:00
parent c1c4086383
commit 6cc81e3804
3 changed files with 8 additions and 7 deletions
+2 -2
View File
@@ -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 = "";
+5 -4
View File
@@ -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 {
+1 -1
View File
@@ -103,7 +103,7 @@ export const webGenerationGateway = {
prompt,
createdAt,
source: "server",
errorMessage: err instanceof Error ? err.message : "请求失败",
errorMessage: err instanceof Error ? err.message : "请求失败,请稍后重试",
};
}
},