From 289b378e0b2045375b664950583b8064faea370e Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 28 Oct 2020 23:19:31 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E6=94=AF=E6=8C=81--busDetail=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=80=89=E9=A1=B9=EF=BC=8C=E5=AF=B9.once.=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=9B=B4=E5=A5=BD=E7=9A=84debug=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/src/service/bus.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/src/service/bus.ts b/packages/hydrooj/src/service/bus.ts index 63a4d99a6..7d4e6882a 100644 --- a/packages/hydrooj/src/service/bus.ts +++ b/packages/hydrooj/src/service/bus.ts @@ -85,10 +85,13 @@ export function prependListener(name: K, listener: Eve } export function once(name: K, listener: EventMap[K]) { - const dispose = addListener(name, function _listener(...args: any[]) { + let dispose; + function _listener(...args: any[]) { dispose(); return listener.apply(this, args); - }); + } + _listener.toString = () => `// Once \n${listener.toString()}`; + dispose = addListener(name, _listener); return dispose; } @@ -116,6 +119,7 @@ export async function serial(name: K, ...args: Paramet if (argv.showBus) logger.debug('serial: %s %o', name, args); const hooks = Array.from(_hooks[name] || []); for (const callback of hooks) { + if (argv.busDetail) console.log(callback.toString()); await callback.apply(this, args); } }