LegacyScriptEngine icon indicating copy to clipboard operation
LegacyScriptEngine copied to clipboard

mc.listen()回调函数使用异步无法正常运行

Open Hesitate-P opened this issue 3 years ago • 5 comments

异常模块

ScriptEngine(脚本引擎)

操作系统

Windows 11

LiteLoader版本

2.5.1

BDS版本

1.19.20

发生了什么?

RT,这是个编写nodejs插件时发现的问题。 此问题在quickjs中没有发现。

复现此问题的步骤

将这串代码输入到您的nodejs插件中,您会发现mc.listen中的回调函数不会执行: async function abc(a) { if (a == 0) { a = 1 } else { a = 0 } return a } mc.listen("onServerStarted", async function () { let d = await abc(1) log(d) })

有关的日志/输出

(无)

插件列表

17:22:20 INFO [Server] 插件列表 [5]
17:22:20 INFO [Server] - LLMoney [v2.5.0] (LLMoney.dll)
17:22:20 INFO [Server]   EconomyCore for LiteLoaderBDS
17:22:20 INFO [Server] - ScriptEngine-Lua [v2.5.0] (LiteLoader.Lua.dll)
17:22:20 INFO [Server]   Lua ScriptEngine for LiteLoaderBDS
17:22:20 INFO [Server] - ScriptEngine-QuickJs [v2.5.0] (LiteLoader.Js.dll)
17:22:20 INFO [Server]   Javascript ScriptEngine for LiteLoaderBDS
17:22:20 INFO [Server] - ScriptEngine-NodeJs [v2.5.0] (LiteLoader.NodeJs.dll)
17:22:20 INFO [Server]   Node.js ScriptEngine for LiteLoaderBDS
17:22:20 INFO [Server] - TEST [v1.0.0] (TEST)
17:22:20 INFO [Server]   TEST plugin
17:22:20 INFO [Server]

Hesitate-P avatar Aug 15 '22 09:08 Hesitate-P

可以用Promise来代替吧,反正这也不阻塞

function onStart() { abc(1).then((res)=>{ log(res); }); } mc.listen("onServerStarted", onStart);

Timiya-re avatar Aug 18 '24 14:08 Timiya-re