From a9cb6cc856fefa838825784e01918a3eac5bb2e7 Mon Sep 17 00:00:00 2001 From: HermanBilous Date: Wed, 12 Feb 2025 18:23:44 +0200 Subject: [PATCH] Use Math.pow for retry delay calculation --- .changeset/flat-mice-hope.md | 5 +++++ src/client.ts | 7 ++----- 2 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 .changeset/flat-mice-hope.md diff --git a/.changeset/flat-mice-hope.md b/.changeset/flat-mice-hope.md new file mode 100644 index 00000000..8d535287 --- /dev/null +++ b/.changeset/flat-mice-hope.md @@ -0,0 +1,5 @@ +--- +'graphql-ws': patch +--- + +Use Math.pow for retry delay calculation diff --git a/src/client.ts b/src/client.ts index b0013904..b4ffb853 100644 --- a/src/client.ts +++ b/src/client.ts @@ -464,14 +464,11 @@ export function createClient< connectionAckWaitTimeout = 0, retryAttempts = 5, retryWait = async function randomisedExponentialBackoff(retries) { - let retryDelay = 1000; // start with 1s delay - for (let i = 0; i < retries; i++) { - retryDelay *= 2; - } + const retryDelaySeconds = Math.pow(2, retries); await new Promise((resolve) => setTimeout( resolve, - retryDelay + + retryDelaySeconds * 1000 + // add random timeout from 300ms to 3s Math.floor(Math.random() * (3000 - 300) + 300), ),