This commit is contained in:
手瓜一十雪 2024-09-23 09:34:44 +08:00
parent 5ba110e1da
commit 44dbba17e1

View File

@ -183,11 +183,11 @@ export class NTEventWrapper {
timeout = 5000, timeout = 5000,
) { ) {
return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>( return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>(
(resolve, reject) => { async (resolve, reject) => {
const id = randomUUID(); const id = randomUUID();
let complete = 0; let complete = 0;
let retData: Parameters<ListenerType> | undefined = undefined; let retData: Parameters<ListenerType> | undefined = undefined;
const retEvent: any = {}; let retEvent: any = {};
function sendDataCallback() { function sendDataCallback() {
if (complete == 0) { if (complete == 0) {
@ -235,22 +235,22 @@ export class NTEventWrapper {
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallback); this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallback);
this.createListenerFunction(ListenerMainName); this.createListenerFunction(ListenerMainName);
const eventFunction = this.createEventFunction(serviceAndMethod); const eventFunction = this.createEventFunction(serviceAndMethod);
if (eventFunction) eventFunction(...(args)).then((retEvent: Awaited<ReturnType<EventType>>) => { retEvent = await eventFunction!(...(args));
if (!checkerEvent(retEvent) && timeoutRef.hasRef()) { if (!checkerEvent(retEvent) && timeoutRef.hasRef()) {
clearTimeout(timeoutRef); clearTimeout(timeoutRef);
reject( reject(
new Error( new Error(
'EventChecker Failed: NTEvent serviceAndMethod:' + 'EventChecker Failed: NTEvent serviceAndMethod:' +
serviceAndMethod + serviceAndMethod +
' ListenerName:' + ' ListenerName:' +
listenerAndMethod + listenerAndMethod +
' EventRet:\n' + ' EventRet:\n' +
JSON.stringify(retEvent, null, 4) + JSON.stringify(retEvent, null, 4) +
'\n', '\n',
), ),
); );
} }
});
}, },
); );
} }