diff --git a/src/common/framework/event-legacy.ts b/src/common/framework/event-legacy.ts index 4a24ceb9..66ac2596 100644 --- a/src/common/framework/event-legacy.ts +++ b/src/common/framework/event-legacy.ts @@ -68,7 +68,7 @@ export class LegacyNTEventWrapper { const existListener = this.listenerManager.get(listenerMainName + uniqueCode); if (!existListener) { const Listener = this.createProxyDispatch(listenerMainName); - const ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1]; + const ServiceSubName = /^NodeIKernel(.*?)Listener$/.exec(listenerMainName)![1]; const Service = 'NodeIKernel' + ServiceSubName + 'Service/addKernel' + ServiceSubName + 'Listener'; const addfunc = this.createEventFunction<(listener: T) => number>(Service); addfunc!(Listener as T); diff --git a/src/common/framework/event.ts b/src/common/framework/event.ts index b9c68ef9..567b63fe 100644 --- a/src/common/framework/event.ts +++ b/src/common/framework/event.ts @@ -46,7 +46,7 @@ export class NTEventChannel extends EventEmitter { Listener = new ListenerType(this.createProxyDispatch(listenerMainName)); if (!Listener) throw new Error('Init Listener failed'); //实例化NTQQ Listener外包装 - const ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1]; + const ServiceSubName = /^NodeIKernel(.*?)Listener$/.exec(listenerMainName)![1]; const Service = 'NodeIKernel' + ServiceSubName + 'Service/addKernel' + ServiceSubName + 'Listener'; const addfunc = this.createEventFunction<(listener: T) => number>(Service); //添加Listener到NTQQ diff --git a/src/common/utils/helper.ts b/src/common/utils/helper.ts index fd718908..40a9e8a6 100644 --- a/src/common/utils/helper.ts +++ b/src/common/utils/helper.ts @@ -15,10 +15,13 @@ export async function solveProblem any>(func: T, .. } export async function solveAsyncProblem Promise>(func: T, ...args: Parameters): Promise> | undefined> { - return new Promise> | undefined>(async (resolve) => { + return new Promise> | undefined>((resolve) => { try { - const result = await func(...args); - resolve(result); + func(...args).then((result) => { + resolve(result); + }).catch((e) => { + resolve(undefined); + }); } catch (e) { resolve(undefined); } diff --git a/src/core/apis/user.ts b/src/core/apis/user.ts index d07ec121..81dfc6ca 100644 --- a/src/core/apis/user.ts +++ b/src/core/apis/user.ts @@ -129,7 +129,7 @@ export class NTQQUserApi { } async getUserDetailInfo(uid: string): Promise { - const retUser = await solveAsyncProblem(async (uid) => this.fetchUserDetailInfo(uid, UserDetailSource.KDB)); + const retUser = await solveAsyncProblem(async (uid) => this.fetchUserDetailInfo(uid, UserDetailSource.KDB), uid); if (retUser && retUser.uin !== '0') { return retUser; } diff --git a/src/core/apis/webapi.ts b/src/core/apis/webapi.ts index 1f3c552f..8537f6d9 100644 --- a/src/core/apis/webapi.ts +++ b/src/core/apis/webapi.ts @@ -166,7 +166,7 @@ export class NTQQWebApi { let resJson; try { const res = await RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': this.cookieToString(cookieObject) }); - const match = res.match(/window\.__INITIAL_STATE__=(.*?);/); + let match = /window\.__INITIAL_STATE__=(.*?);/.exec(res); if (match) { resJson = JSON.parse(match[1].trim()); }