diff --git a/embedding.js b/embedding.js index 1fcaf32..1281628 100644 --- a/embedding.js +++ b/embedding.js @@ -32,17 +32,17 @@ function createCombinedAbortSignal(...signals) { const controller = new AbortController(); for (const signal of validSignals) { if (signal.aborted) { - controller.abort(); + controller.abort(signal.reason); return controller.signal; } - signal.addEventListener('abort', () => controller.abort(), { once: true }); + signal.addEventListener('abort', () => controller.abort(signal.reason), { once: true }); } return controller.signal; } async function fetchWithTimeout(url, options = {}, timeoutMs = EMBEDDING_REQUEST_TIMEOUT_MS) { const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), timeoutMs); + const timeout = setTimeout(() => controller.abort(new DOMException(`Embedding 请求超时 (${Math.round(timeoutMs / 1000)}s)`, 'AbortError')), timeoutMs); const signal = options.signal ? createCombinedAbortSignal(options.signal, controller.signal) : controller.signal; diff --git a/index.js b/index.js index d69dbd8..ba4aef3 100644 --- a/index.js +++ b/index.js @@ -798,7 +798,7 @@ async function fetchLocalWithTimeout( timeoutMs = LOCAL_VECTOR_TIMEOUT_MS, ) { const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), timeoutMs); + const timeout = setTimeout(() => controller.abort(new DOMException(`本地请求超时 (${Math.round(timeoutMs / 1000)}s)`, 'AbortError')), timeoutMs); let signal = controller.signal; if (options.signal) { if ( @@ -808,7 +808,7 @@ async function fetchLocalWithTimeout( signal = AbortSignal.any([options.signal, controller.signal]); } else { signal = controller.signal; - options.signal.addEventListener("abort", () => controller.abort(), { + options.signal.addEventListener("abort", () => controller.abort(options.signal.reason), { once: true, }); } diff --git a/llm.js b/llm.js index 1f4b5c6..3063524 100644 --- a/llm.js +++ b/llm.js @@ -215,7 +215,7 @@ function buildJsonAttemptMessages(systemPrompt, userPrompt, attempt, reason = '' async function fetchWithTimeout(url, options = {}, timeoutMs = LLM_REQUEST_TIMEOUT_MS) { const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), timeoutMs); + const timeout = setTimeout(() => controller.abort(new DOMException(`LLM 请求超时 (${Math.round(timeoutMs / 1000)}s)`, 'AbortError')), timeoutMs); const signal = options.signal ? createCombinedAbortSignal(options.signal, controller.signal) : controller.signal; @@ -243,10 +243,10 @@ function createCombinedAbortSignal(...signals) { const controller = new AbortController(); for (const signal of validSignals) { if (signal.aborted) { - controller.abort(); + controller.abort(signal.reason); return controller.signal; } - signal.addEventListener('abort', () => controller.abort(), { once: true }); + signal.addEventListener('abort', () => controller.abort(signal.reason), { once: true }); } return controller.signal; } diff --git a/vector-index.js b/vector-index.js index d1f198d..472470e 100644 --- a/vector-index.js +++ b/vector-index.js @@ -79,17 +79,17 @@ function createCombinedAbortSignal(...signals) { const controller = new AbortController(); for (const signal of validSignals) { if (signal.aborted) { - controller.abort(); + controller.abort(signal.reason); return controller.signal; } - signal.addEventListener("abort", () => controller.abort(), { once: true }); + signal.addEventListener("abort", () => controller.abort(signal.reason), { once: true }); } return controller.signal; } async function fetchWithTimeout(url, options = {}, timeoutMs = VECTOR_REQUEST_TIMEOUT_MS) { const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), timeoutMs); + const timeout = setTimeout(() => controller.abort(new DOMException(`向量请求超时 (${Math.round(timeoutMs / 1000)}s)`, 'AbortError')), timeoutMs); const signal = options.signal ? createCombinedAbortSignal(options.signal, controller.signal) : controller.signal;