feat: 规范化Promise

This commit is contained in:
手瓜一十雪 2024-09-17 09:19:45 +08:00
parent 3843795d8f
commit a1d4882e18

View File

@ -183,7 +183,7 @@ 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>]>(
async (resolve, reject) => { (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;
@ -235,8 +235,8 @@ 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);
retEvent = await eventFunction!(...(args)); if (eventFunction) eventFunction(...(args)).then((retEvent: Awaited<ReturnType<EventType>>) => {
if (!checkerEvent(retEvent)) { if (!checkerEvent(retEvent) && timeoutRef.hasRef()) {
clearTimeout(timeoutRef); clearTimeout(timeoutRef);
reject( reject(
new Error( new Error(
@ -250,6 +250,7 @@ export class NTEventWrapper {
), ),
); );
} }
});
}, },
); );
} }