From f91968caefc16728da1e0f48bc0a4ffe0154ff77 Mon Sep 17 00:00:00 2001 From: MARCROCK22 <57925328+MARCROCK22@users.noreply.github.com> Date: Sun, 7 Apr 2024 16:57:54 -0400 Subject: [PATCH] fix: promises --- src/api/api.ts | 11 ++--------- src/cache/adapters/workeradapter.ts | 15 +++------------ src/client/workerclient.ts | 15 +++------------ src/websocket/discord/workermanager.ts | 15 +++------------ src/websocket/structures/timeout.ts | 21 +++++++++------------ 5 files changed, 20 insertions(+), 57 deletions(-) diff --git a/src/api/api.ts b/src/api/api.ts index bb4fbe6..b5e21f3 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -80,17 +80,10 @@ export class ApiHandler { ?.filter(x => !['string', 'boolean', 'number'].includes(typeof x.data)) .map(x => x.data as Buffer | Uint8Array), ); - let resolve = (_value: T) => {}; - let reject = () => {}; - const promise = new Promise((res, rej) => { - resolve = res; - reject = rej; + return new Promise((res, rej) => { + this.workerPromises!.set(nonce, { reject: rej, resolve: res }); }); - - this.workerPromises!.set(nonce, { reject, resolve }); - - return promise; } const route = request.route || this.routefy(url, method); let attempts = 0; diff --git a/src/cache/adapters/workeradapter.ts b/src/cache/adapters/workeradapter.ts index 28f24a8..9646dc6 100644 --- a/src/cache/adapters/workeradapter.ts +++ b/src/cache/adapters/workeradapter.ts @@ -27,22 +27,13 @@ export class WorkerAdapter implements Adapter { workerId: this.workerData.workerId, } satisfies WorkerSendCacheRequest); - let resolve = (_: any) => { - /**/ - }; - let timeout = -1 as unknown as NodeJS.Timeout; - - const promise = new Promise((res, rej) => { - resolve = res; - timeout = setTimeout(() => { + return new Promise((res, rej) => { + const timeout = setTimeout(() => { this.promises.delete(nonce); rej(new Error('Timeout cache request')); }, 60e3); + this.promises.set(nonce, { resolve: res, timeout }); }); - - this.promises.set(nonce, { resolve, timeout }); - - return promise; } scan(...rest: any[]) { diff --git a/src/client/workerclient.ts b/src/client/workerclient.ts index 5b52062..7ae109a 100644 --- a/src/client/workerclient.ts +++ b/src/client/workerclient.ts @@ -284,22 +284,13 @@ export class WorkerClient extends BaseClient { } private generateSendPromise(nonce: string, message = 'Timeout'): Promise { - let resolve = (_: T) => { - /**/ - }; - let timeout = -1 as unknown as NodeJS.Timeout; - - const promise = new Promise((res, rej) => { - resolve = res; - timeout = setTimeout(() => { + return new Promise((res, rej) => { + const timeout = setTimeout(() => { this.promises.delete(nonce); rej(new Error(message)); }, 60e3); + this.promises.set(nonce, { resolve: res, timeout }); }); - - this.promises.set(nonce, { resolve, timeout }); - - return promise; } tellWorker(workerId: number, func: (_: this) => {}) { diff --git a/src/websocket/discord/workermanager.ts b/src/websocket/discord/workermanager.ts index 3850b18..70bb39a 100644 --- a/src/websocket/discord/workermanager.ts +++ b/src/websocket/discord/workermanager.ts @@ -338,22 +338,13 @@ export class WorkerManager extends Map(nonce: string, message = 'Timeout'): Promise { - let resolve = (_: T) => { - /**/ - }; - let timeout = -1 as unknown as NodeJS.Timeout; - - const promise = new Promise((res, rej) => { - resolve = res; - timeout = setTimeout(() => { + return new Promise((res, rej) => { + const timeout = setTimeout(() => { this.promises.delete(nonce); rej(new Error(message)); }, 60e3); + this.promises.set(nonce, { resolve: res, timeout }); }); - - this.promises.set(nonce, { resolve, timeout }); - - return promise; } async send(data: GatewaySendPayload, shardId: number) { diff --git a/src/websocket/structures/timeout.ts b/src/websocket/structures/timeout.ts index aa73882..2fe821b 100644 --- a/src/websocket/structures/timeout.ts +++ b/src/websocket/structures/timeout.ts @@ -4,18 +4,15 @@ export class ConnectTimeout { constructor(public intervalTime = 5000) {} wait() { - let resolve = (_x: boolean) => { - // - }; - const promise = new Promise(r => (resolve = r)); - if (!this.promises.length) { - this.interval = setInterval(() => { - this.shift(); - }, this.intervalTime); - resolve(true); - } - this.promises.push(resolve); - return promise; + return new Promise(res => { + if (!this.promises.length) { + this.interval = setInterval(() => { + this.shift(); + }, this.intervalTime); + res(true); + } + this.promises.push(res); + }); } shift() {