mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
fix: sendCommand
This commit is contained in:
@@ -58,12 +58,9 @@ export abstract class PacketClient {
|
|||||||
private async sendCommand(cmd: string, data: string, trace_id: string, rsp: boolean = false, timeout: number = 20000, sendcb: (json: RecvPacketData) => void = () => {
|
private async sendCommand(cmd: string, data: string, trace_id: string, rsp: boolean = false, timeout: number = 20000, sendcb: (json: RecvPacketData) => void = () => {
|
||||||
}): Promise<RecvPacketData> {
|
}): Promise<RecvPacketData> {
|
||||||
return new Promise<RecvPacketData>((resolve, reject) => {
|
return new Promise<RecvPacketData>((resolve, reject) => {
|
||||||
if (rsp) {
|
const timeoutHandle = setTimeout(() => {
|
||||||
this.registerCallback(trace_id, 'recv', async (json: RecvPacketData) => {
|
reject(new Error(`sendCommand timed out after ${timeout} ms for ${cmd} with trace_id ${trace_id}`));
|
||||||
clearTimeout(timeoutHandle);
|
}, timeout);
|
||||||
resolve(json);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
this.registerCallback(trace_id, 'send', async (json: RecvPacketData) => {
|
this.registerCallback(trace_id, 'send', async (json: RecvPacketData) => {
|
||||||
sendcb(json);
|
sendcb(json);
|
||||||
if (!rsp) {
|
if (!rsp) {
|
||||||
@@ -71,10 +68,13 @@ export abstract class PacketClient {
|
|||||||
resolve(json);
|
resolve(json);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (rsp) {
|
||||||
|
this.registerCallback(trace_id, 'recv', async (json: RecvPacketData) => {
|
||||||
|
clearTimeout(timeoutHandle);
|
||||||
|
resolve(json);
|
||||||
|
});
|
||||||
|
}
|
||||||
this.sendCommandImpl(cmd, data, trace_id);
|
this.sendCommandImpl(cmd, data, trace_id);
|
||||||
const timeoutHandle = setTimeout(() => {
|
|
||||||
reject(new Error(`sendCommand timed out after ${timeout} ms for ${cmd} with trace_id ${trace_id}`));
|
|
||||||
}, timeout);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user