From d84208747a2ba46c33dc78dd665f52bfb17fc433 Mon Sep 17 00:00:00 2001 From: shijian <2954700422@qq.com> Date: Mon, 18 Dec 2023 09:30:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/game.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/game/game.js b/game/game.js index 9d56b468e..01c881c95 100644 --- a/game/game.js +++ b/game/game.js @@ -32141,9 +32141,6 @@ new Promise(resolve=>{ // 事件结束后触发resolve event.resolve=resolve; if(!_status.event) return; - if(!game.executingAsyncEventMap){ - game.executingAsyncEventMap=new Map(); - } // game.createEvent的时候还没立即push到next里 Promise.resolve().then(()=>{ game.executingAsyncEventMap.set(_status.event.toEvent(),(game.executingAsyncEventMap.get(_status.event.toEvent())||Promise.resolve()).then(()=>{ @@ -41446,6 +41443,14 @@ new Promise(resolve=>{ setTimeout(game.reload,15000) } }, + /** + * @type { Map> } + * + * 以Promise储存异步事件的执行链,使async content调用事件时无需必须使用await + * + * 但是需要事件结果的除外 + */ + executingAsyncEventMap:new Map(), /** * @param { Promise & GameEvent & GameEventPromise } [belongAsyncEvent] */ @@ -41644,7 +41649,7 @@ new Promise(resolve=>{ else if (event.content instanceof AsyncFunction) { // _status,lib,game,ui,get,ai六个变量由game.import提供 event.content(event, trigger, player).then(() => { - if (game.executingAsyncEventMap && game.executingAsyncEventMap.has(event.toEvent())) { + if (game.executingAsyncEventMap.has(event.toEvent())) { game.executingAsyncEventMap.set(_status.event.toEvent(), game.executingAsyncEventMap.get(_status.event.toEvent()).then(() => { event.finish(); resolve();