神岛 API 文档 - ArenaPro版
    Preparing search index...

    Type Alias GameEventFuture<EventType>

    GameEventFuture: (filter?: (event: EventType) => boolean) => Promise<EventType>

    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('游戏准备就绪'));

    Type Parameters

    • EventType

    Type declaration

      • (filter?: (event: EventType) => boolean): Promise<EventType>
      • Parameters

        • Optionalfilter: (event: EventType) => boolean

          一个可选的函数,用于检查事件类型。如果过滤器不为真,则事件不会被分发。如果没有提供过滤器,则未来会在下一个事件上触发。

        Returns Promise<EventType>

        一个 Promise,在匹配过滤器的事件触发时解析。

    EventType 通道发出的事件类型。