Promise 提供了另一种处理事件的方式。你可以使用 Promise 来组织长序列的事件, 通过结构化编程来简化代码。在某些情况下,这可以使代码更简单和清晰,但必须谨慎使用。 异步代码在等待时可能会被中断,这意味着世界中的事物可能会在你的代码之外发生变化。 此外,异步代码中生成的错误不会带有堆栈跟踪,这会使调试变得复杂。考虑这些因素并谨慎使用 Promise。
示例:
// 等待 2 名玩家进入世界async function waitForPlayers(count) { while (world.querySelectorAll('player').length < count) { const { entity } = await world.nextPlayerJoin(); world.say(entity.player.name + ' 加入了'); }}waitForPlayers(2).then(() => world.say('游戏准备就绪')); Copy
// 等待 2 名玩家进入世界async function waitForPlayers(count) { while (world.querySelectorAll('player').length < count) { const { entity } = await world.nextPlayerJoin(); world.say(entity.player.name + ' 加入了'); }}waitForPlayers(2).then(() => world.say('游戏准备就绪'));
Optional
一个可选的函数,用于检查事件类型。如果过滤器不为真,则事件不会被分发。如果没有提供过滤器,则未来会在下一个事件上触发。
一个 Promise,在匹配过滤器的事件触发时解析。
EventType 通道发出的事件类型。
Promise 提供了另一种处理事件的方式。你可以使用 Promise 来组织长序列的事件, 通过结构化编程来简化代码。在某些情况下,这可以使代码更简单和清晰,但必须谨慎使用。 异步代码在等待时可能会被中断,这意味着世界中的事物可能会在你的代码之外发生变化。 此外,异步代码中生成的错误不会带有堆栈跟踪,这会使调试变得复杂。考虑这些因素并谨慎使用 Promise。
示例: