Merge pull request #813 from nonameShijian/PR-Branch

修复game.belongAsyncEvent指定不明确的问题
This commit is contained in:
Spmario233 2024-01-19 01:46:38 +08:00 committed by GitHub
commit 8407bed9a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 7 deletions

View File

@ -5366,10 +5366,11 @@ export class Game extends Uninstantable {
* @param { GameEventPromise } [belongAsyncEvent]
*/
static async loop(belongAsyncEvent) {
if (!game.belongAsyncEventList) game.belongAsyncEventList = [];
if (belongAsyncEvent) {
game.belongAsyncEvent = belongAsyncEvent;
} else if (game.belongAsyncEvent) {
return game.loop(game.belongAsyncEvent);
game.belongAsyncEventList.push(belongAsyncEvent);
} else if (game.belongAsyncEventList.length) {
belongAsyncEvent = game.belongAsyncEventList.at(-1);
}
while (true) {
let event = (belongAsyncEvent && belongAsyncEvent.parent == _status.event) ? belongAsyncEvent : _status.event;
@ -5447,8 +5448,8 @@ export class Game extends Uninstantable {
event.parent._result = event.result;
}
_status.event = event.parent;
if (game.belongAsyncEvent == event) {
delete game.belongAsyncEvent;
if (game.belongAsyncEventList.includes(event)) {
game.belongAsyncEventList.remove(event);
}
_resolve();
// 此时应该退出了
@ -5457,8 +5458,8 @@ export class Game extends Uninstantable {
}
}
else {
if (game.belongAsyncEvent == event) {
delete game.belongAsyncEvent;
if (game.belongAsyncEventList.includes(event)) {
game.belongAsyncEventList.remove(event);
}
return _resolve();
}