mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-03 05:26: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))
|
?.filter(x => !['string', 'boolean', 'number'].includes(typeof x.data))
|
||||||
.map(x => x.data as Buffer | Uint8Array),
|
.map(x => x.data as Buffer | Uint8Array),
|
||||||
);
|
);
|
||||||
let resolve = (_value: T) => {};
|
|
||||||
let reject = () => {};
|
|
||||||
|
|
||||||
const promise = new Promise<T>((res, rej) => {
|
return new Promise<T>((res, rej) => {
|
||||||
resolve = res;
|
this.workerPromises!.set(nonce, { reject: rej, resolve: res });
|
||||||
reject = rej;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.workerPromises!.set(nonce, { reject, resolve });
|
|
||||||
|
|
||||||
return promise;
|
|
||||||
}
|
}
|
||||||
const route = request.route || this.routefy(url, method);
|
const route = request.route || this.routefy(url, method);
|
||||||
let attempts = 0;
|
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,
|
workerId: this.workerData.workerId,
|
||||||
} satisfies WorkerSendCacheRequest);
|
} satisfies WorkerSendCacheRequest);
|
||||||
|
|
||||||
let resolve = (_: any) => {
|
return new Promise<any>((res, rej) => {
|
||||||
/**/
|
const timeout = setTimeout(() => {
|
||||||
};
|
|
||||||
let timeout = -1 as unknown as NodeJS.Timeout;
|
|
||||||
|
|
||||||
const promise = new Promise<any>((res, rej) => {
|
|
||||||
resolve = res;
|
|
||||||
timeout = setTimeout(() => {
|
|
||||||
this.promises.delete(nonce);
|
this.promises.delete(nonce);
|
||||||
rej(new Error('Timeout cache request'));
|
rej(new Error('Timeout cache request'));
|
||||||
}, 60e3);
|
}, 60e3);
|
||||||
|
this.promises.set(nonce, { resolve: res, timeout });
|
||||||
});
|
});
|
||||||
|
|
||||||
this.promises.set(nonce, { resolve, timeout });
|
|
||||||
|
|
||||||
return promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scan(...rest: any[]) {
|
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> {
|
private generateSendPromise<T = unknown>(nonce: string, message = 'Timeout'): Promise<T> {
|
||||||
let resolve = (_: T) => {
|
return new Promise<T>((res, rej) => {
|
||||||
/**/
|
const timeout = setTimeout(() => {
|
||||||
};
|
|
||||||
let timeout = -1 as unknown as NodeJS.Timeout;
|
|
||||||
|
|
||||||
const promise = new Promise<T>((res, rej) => {
|
|
||||||
resolve = res;
|
|
||||||
timeout = setTimeout(() => {
|
|
||||||
this.promises.delete(nonce);
|
this.promises.delete(nonce);
|
||||||
rej(new Error(message));
|
rej(new Error(message));
|
||||||
}, 60e3);
|
}, 60e3);
|
||||||
|
this.promises.set(nonce, { resolve: res, timeout });
|
||||||
});
|
});
|
||||||
|
|
||||||
this.promises.set(nonce, { resolve, timeout });
|
|
||||||
|
|
||||||
return promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tellWorker(workerId: number, func: (_: this) => {}) {
|
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> {
|
private generateSendPromise<T = unknown>(nonce: string, message = 'Timeout'): Promise<T> {
|
||||||
let resolve = (_: T) => {
|
return new Promise<T>((res, rej) => {
|
||||||
/**/
|
const timeout = setTimeout(() => {
|
||||||
};
|
|
||||||
let timeout = -1 as unknown as NodeJS.Timeout;
|
|
||||||
|
|
||||||
const promise = new Promise<T>((res, rej) => {
|
|
||||||
resolve = res;
|
|
||||||
timeout = setTimeout(() => {
|
|
||||||
this.promises.delete(nonce);
|
this.promises.delete(nonce);
|
||||||
rej(new Error(message));
|
rej(new Error(message));
|
||||||
}, 60e3);
|
}, 60e3);
|
||||||
|
this.promises.set(nonce, { resolve: res, timeout });
|
||||||
});
|
});
|
||||||
|
|
||||||
this.promises.set(nonce, { resolve, timeout });
|
|
||||||
|
|
||||||
return promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async send(data: GatewaySendPayload, shardId: number) {
|
async send(data: GatewaySendPayload, shardId: number) {
|
||||||
|
@ -4,18 +4,15 @@ export class ConnectTimeout {
|
|||||||
constructor(public intervalTime = 5000) {}
|
constructor(public intervalTime = 5000) {}
|
||||||
|
|
||||||
wait() {
|
wait() {
|
||||||
let resolve = (_x: boolean) => {
|
return new Promise<boolean>(res => {
|
||||||
//
|
|
||||||
};
|
|
||||||
const promise = new Promise<boolean>(r => (resolve = r));
|
|
||||||
if (!this.promises.length) {
|
if (!this.promises.length) {
|
||||||
this.interval = setInterval(() => {
|
this.interval = setInterval(() => {
|
||||||
this.shift();
|
this.shift();
|
||||||
}, this.intervalTime);
|
}, this.intervalTime);
|
||||||
resolve(true);
|
res(true);
|
||||||
}
|
}
|
||||||
this.promises.push(resolve);
|
this.promises.push(res);
|
||||||
return promise;
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
shift() {
|
shift() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user