let timedOut = false;
let timeoutHandle: ReturnType<typeof setTimeout> | null = null; const runPromise = params.run(mergedAbortSignal).catch((error) => { if (!timedOut) { throw error;
} if (timeoutAbortController?.signal.aborted && isAbortError(error)) {
params.onAbortAfterTimeout?.(); return;
}
params.onErrorAfterTimeout?.(error);
});
try { if (!params.timeoutMs) {
await runPromise; returnfalse;
} const timeoutPromise = new Promise<"timeout">((resolve) => {
timeoutHandle = setTimeout(() => resolve("timeout"), params.timeoutMs);
timeoutHandle.unref?.();
}); const result = await Promise.race([
runPromise.then(() => "completed" as const),
timeoutPromise,
]); if (result === "timeout") {
timedOut = true;
timeoutAbortController?.abort();
await params.onTimeout(params.timeoutMs); returntrue;
} returnfalse;
} finally { if (timeoutHandle) {
clearTimeout(timeoutHandle);
}
}
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.