fix: promises

This commit is contained in:
MARCROCK22 2024-04-07 16:57:54 -04:00
parent 2cfb4b951b
commit f91968caef
5 changed files with 20 additions and 57 deletions

View File

@ -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<T>((res, rej) => {
resolve = res;
reject = rej;
return new Promise<T>((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;

View File

@ -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<any>((res, rej) => {
resolve = res;
timeout = setTimeout(() => {
return new Promise<any>((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[]) {

View File

@ -284,22 +284,13 @@ export class WorkerClient<Ready extends boolean = boolean> extends BaseClient {
}
private generateSendPromise<T = unknown>(nonce: string, message = 'Timeout'): Promise<T> {
let resolve = (_: T) => {
/**/
};
let timeout = -1 as unknown as NodeJS.Timeout;
const promise = new Promise<T>((res, rej) => {
resolve = res;
timeout = setTimeout(() => {
return new Promise<T>((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) => {}) {

View File

@ -338,22 +338,13 @@ export class WorkerManager extends Map<number, (ClusterWorker | ThreadWorker) &
}
private generateSendPromise<T = unknown>(nonce: string, message = 'Timeout'): Promise<T> {
let resolve = (_: T) => {
/**/
};
let timeout = -1 as unknown as NodeJS.Timeout;
const promise = new Promise<T>((res, rej) => {
resolve = res;
timeout = setTimeout(() => {
return new Promise<T>((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) {

View File

@ -4,18 +4,15 @@ export class ConnectTimeout {
constructor(public intervalTime = 5000) {}
wait() {
let resolve = (_x: boolean) => {
//
};
const promise = new Promise<boolean>(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<boolean>(res => {
if (!this.promises.length) {
this.interval = setInterval(() => {
this.shift();
}, this.intervalTime);
res(true);
}
this.promises.push(res);
});
}
shift() {