fix: 修复所有 abort() 不传 reason 导致的'signal is aborted without reason'提示

为 llm.js/embedding.js/vector-index.js/index.js 中所有
controller.abort() 添加具体原因:
- 超时: 'LLM 请求超时 (60s)' / 'Embedding 请求超时 (45s)'
- 信号传递: 转发原始 signal.reason
This commit is contained in:
Youzini-afk
2026-03-25 15:22:56 +08:00
parent 2e224faa61
commit 02fdac48e8
4 changed files with 11 additions and 11 deletions

View File

@@ -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,
});
}