From 739febbd658b2eee0f7c4508431e274797a202a8 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Mon, 12 Jun 2023 17:18:51 +0200 Subject: [PATCH] fix: prevent unhandled rejections in racePromisesWithCutoff (#5627) * Log unhandled promise rejections * Resolve cutoffPromise and timeoutPromise instead of rejecting * Remove unhandled promise rejections test logs * Use sleep instead of new Promise/setTimeout --- packages/utils/src/promise.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/utils/src/promise.ts b/packages/utils/src/promise.ts index bfc5b5a3ed6c..51e1cdbaf1e3 100644 --- a/packages/utils/src/promise.ts +++ b/packages/utils/src/promise.ts @@ -80,14 +80,12 @@ export async function racePromisesWithCutoff( ): Promise<(Error | T)[]> { // start the cutoff and timeout timers let cutoffObserved = false; - const cutoffPromise = new Promise((_resolve, reject) => setTimeout(reject, cutoffMs)).catch((e) => { + const cutoffPromise = sleep(cutoffMs).then(() => { cutoffObserved = true; - throw e; }); let timeoutObserved = false; - const timeoutPromise = new Promise((_resolve, reject) => setTimeout(reject, timeoutMs)).catch((e) => { + const timeoutPromise = sleep(timeoutMs).then(() => { timeoutObserved = true; - throw e; }); const startTime = Date.now();