mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-17 20:21:13 +00:00
refactor: split feishu helpers and tests
This commit is contained in:
@@ -60,3 +60,27 @@ export async function raceWithTimeoutAndAbort<T>(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function waitForAbortableDelay(
|
||||
delayMs: number,
|
||||
abortSignal?: AbortSignal,
|
||||
): Promise<boolean> {
|
||||
if (abortSignal?.aborted) {
|
||||
return Promise.resolve(false);
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
const handleAbort = () => {
|
||||
clearTimeout(timer);
|
||||
resolve(false);
|
||||
};
|
||||
|
||||
const timer = setTimeout(() => {
|
||||
abortSignal?.removeEventListener("abort", handleAbort);
|
||||
resolve(true);
|
||||
}, delayMs);
|
||||
timer.unref?.();
|
||||
|
||||
abortSignal?.addEventListener("abort", handleAbort, { once: true });
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user