From d6fdf6f53c90ae929db0271d5c277021459b9e46 Mon Sep 17 00:00:00 2001 From: Kokomi <1379177109@qq.com> Date: Mon, 16 Oct 2023 04:11:44 +0800 Subject: [PATCH] =?UTF-8?q?Handler=E8=B0=83=E7=94=A8=E6=97=B6=E4=BF=9D?= =?UTF-8?q?=E7=95=99this?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugins/handler.js | 13 ++++++++----- lib/plugins/loader.js | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/plugins/handler.js b/lib/plugins/handler.js index 52ddb6a..a96ebad 100644 --- a/lib/plugins/handler.js +++ b/lib/plugins/handler.js @@ -1,9 +1,10 @@ +import util from 'node:util' import lodash from 'lodash' let events = {} let Handler = { add (cfg) { - let { ns, fn, property = 50 } = cfg + let { ns, fn, self, property = 50 } = cfg let key = cfg.key || cfg.event if (!key || !fn) { return @@ -15,6 +16,7 @@ let Handler = { property, fn, ns, + self, key }) events[key] = lodash.orderBy(events[key], ['priority'], ['asc']) @@ -38,7 +40,8 @@ let Handler = { } }, async callAll (key, e, args) { - return await Handler.callAll(key, e, args, true) + // 暂时屏蔽调用 + // return Handler.call(key, e, args, true) }, async call (key, e, args, allHandler = false) { let ret @@ -51,9 +54,9 @@ let Handler = { } done = false } - ret = fn(e, args, reject) - if (ret) { - await ret + ret = fn.call(obj.self, e, args, reject) + if (util.types.isPromise(ret)) { + ret = await ret } if (done && !allHandler) { logger.mark(`[Handler][Done]: [${obj.ns}][${key}]`) diff --git a/lib/plugins/loader.js b/lib/plugins/loader.js index 2c27e1d..9d5448f 100644 --- a/lib/plugins/loader.js +++ b/lib/plugins/loader.js @@ -82,6 +82,7 @@ class PluginsLoader { Handler.add({ ns: plugin.namespace || File.name, key: key, + self: plugin, property: priority || plugin.priority || 500, fn: plugin[fn] }) @@ -795,6 +796,7 @@ class PluginsLoader { Handler.add({ ns: plugin.namespace || File.name, key: key, + self: plugin, property: priority || plugin.priority || 500, fn: plugin[fn] })