Handler调用时保留this

This commit is contained in:
Kokomi 2023-10-16 04:11:44 +08:00
parent 6e14f47513
commit d6fdf6f53c
2 changed files with 10 additions and 5 deletions

View File

@ -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}]`)

View File

@ -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]
})