mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-02 04:56:07 +00:00
fix: promises
This commit is contained in:
parent
2cfb4b951b
commit
f91968caef
@ -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;
|
||||
|
15
src/cache/adapters/workeradapter.ts
vendored
15
src/cache/adapters/workeradapter.ts
vendored
@ -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[]) {
|
||||
|
@ -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) => {}) {
|
||||
|
@ -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) {
|
||||
|
@ -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() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user