






















@@ -179,23 +179,13 @@ function createDeferred<T>() {
179179return { promise, resolve, reject };
180180}
181181182-async function raceWithMacrotask(
183-promise: Promise<unknown>,
184-delayMs: number,
185-): Promise<"resolved" | "pending"> {
186-let timer: NodeJS.Timeout | undefined;
187-try {
188-return await Promise.race([
189-promise.then(() => "resolved" as const),
190-new Promise<"pending">((resolve) => {
191-timer = setTimeout(() => resolve("pending"), delayMs);
192-}),
193-]);
194-} finally {
195-if (timer) {
196-clearTimeout(timer);
197-}
198-}
182+async function raceWithMacrotask(promise: Promise<unknown>): Promise<"resolved" | "pending"> {
183+return await Promise.race([
184+promise.then(() => "resolved" as const),
185+new Promise<"pending">((resolve) => {
186+setImmediate(() => resolve("pending"));
187+}),
188+]);
199189}
200190201191describe("refreshChat", () => {
@@ -213,7 +203,7 @@ describe("refreshChat", () => {
213203});
214204215205const refresh = refreshChat(host);
216-const outcome = await raceWithMacrotask(refresh, 0);
206+const outcome = await raceWithMacrotask(refresh);
217207218208expect(outcome).toBe("resolved");
219209expect(host.chatLoading).toBe(true);
@@ -255,7 +245,7 @@ describe("refreshChat", () => {
255245});
256246257247const refresh = refreshChat(host, { awaitHistory: true, scheduleScroll: false });
258-const pendingOutcome = await raceWithMacrotask(refresh, 0);
248+const pendingOutcome = await raceWithMacrotask(refresh);
259249260250expect(pendingOutcome).toBe("pending");
261251history.resolve({
@@ -565,7 +555,7 @@ describe("refreshChat", () => {
565555sessionKey: "main",
566556});
567557568-const outcome = await raceWithMacrotask(refreshChat(host), 20);
558+const outcome = await raceWithMacrotask(refreshChat(host));
569559570560expect(outcome).toBe("resolved");
571561expect(host.chatMessages).toEqual([
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。