fix(web): bound stalled mutations

This commit is contained in:
lingniu
2026-07-16 07:54:04 +08:00
parent be1ff4ff0d
commit 1a9b2ce962
5 changed files with 74 additions and 37 deletions

View File

@@ -89,12 +89,11 @@ export const API_QUERY_TIMEOUT_MS = 15_000;
function queryTimeout(init: RequestInit | undefined) {
const upstream = init?.signal;
if (!upstream) return undefined;
const controller = new AbortController();
let timedOut = false;
const abortFromUpstream = () => controller.abort(upstream.reason);
if (upstream.aborted) abortFromUpstream();
else upstream.addEventListener('abort', abortFromUpstream, { once: true });
const abortFromUpstream = () => controller.abort(upstream?.reason);
if (upstream?.aborted) abortFromUpstream();
else upstream?.addEventListener('abort', abortFromUpstream, { once: true });
const timer = window.setTimeout(() => {
timedOut = true;
controller.abort();
@@ -104,7 +103,7 @@ function queryTimeout(init: RequestInit | undefined) {
timedOut: () => timedOut,
cleanup: () => {
window.clearTimeout(timer);
upstream.removeEventListener('abort', abortFromUpstream);
upstream?.removeEventListener('abort', abortFromUpstream);
}
};
}