优化写法
This commit is contained in:
parent
8cbc92d5bb
commit
d84208747a
13
game/game.js
13
game/game.js
|
@ -32141,9 +32141,6 @@ new Promise(resolve=>{
|
||||||
// 事件结束后触发resolve
|
// 事件结束后触发resolve
|
||||||
event.resolve=resolve;
|
event.resolve=resolve;
|
||||||
if(!_status.event) return;
|
if(!_status.event) return;
|
||||||
if(!game.executingAsyncEventMap){
|
|
||||||
game.executingAsyncEventMap=new Map();
|
|
||||||
}
|
|
||||||
// game.createEvent的时候还没立即push到next里
|
// game.createEvent的时候还没立即push到next里
|
||||||
Promise.resolve().then(()=>{
|
Promise.resolve().then(()=>{
|
||||||
game.executingAsyncEventMap.set(_status.event.toEvent(),(game.executingAsyncEventMap.get(_status.event.toEvent())||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)
|
setTimeout(game.reload,15000)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @type { Map<GameEvent, Promise<any>> }
|
||||||
|
*
|
||||||
|
* 以Promise储存异步事件的执行链,使async content调用事件时无需必须使用await
|
||||||
|
*
|
||||||
|
* 但是需要事件结果的除外
|
||||||
|
*/
|
||||||
|
executingAsyncEventMap:new Map(),
|
||||||
/**
|
/**
|
||||||
* @param { Promise<GameEvent> & GameEvent & GameEventPromise } [belongAsyncEvent]
|
* @param { Promise<GameEvent> & GameEvent & GameEventPromise } [belongAsyncEvent]
|
||||||
*/
|
*/
|
||||||
|
@ -41644,7 +41649,7 @@ new Promise(resolve=>{
|
||||||
else if (event.content instanceof AsyncFunction) {
|
else if (event.content instanceof AsyncFunction) {
|
||||||
// _status,lib,game,ui,get,ai六个变量由game.import提供
|
// _status,lib,game,ui,get,ai六个变量由game.import提供
|
||||||
event.content(event, trigger, player).then(() => {
|
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(() => {
|
game.executingAsyncEventMap.set(_status.event.toEvent(), game.executingAsyncEventMap.get(_status.event.toEvent()).then(() => {
|
||||||
event.finish();
|
event.finish();
|
||||||
resolve();
|
resolve();
|
||||||
|
|
Loading…
Reference in New Issue