首页 > 解决方案 > 按顺序初始化类

问题描述

我正在构建一个 RPG Quest Bot 供人们互动,但我不完全确定我想如何实现进度。

我有一个包含所有数据的“任务”类,例如谁参与、ID 等。我已将每个区域分成组件。(即你有一个开始组件,然后让我们说一个森林等)。我只是不确定如何在它们之间传递数据。

例子; 在 App.js 中

    try {
        await new BeginComponent(this).execute();
        await new ForestComponent(this).execute();
    } catch (e) {
        console.log(e);
    }

以及相应的组件:

export default class BeginComponent {
    constructor(quest) {
        this.quest = quest;
    }

    execute = () => {
        return new Promise((resolve, reject) => {
            this.quest.sendMessage("A Quest will start in 3 minutes. Please type !quest to participate.");
            setTimeout(() => {
                this.quest.setAcceptingPlayers(false);
                if (this.quest.getPlayers().size !== 0){
                    this.quest.sendMessage("The Quest has began! Good luck to all participants.");
                    resolve();
                } else {
                    this.quest.sendMessage("Nobody went on the Quest.");
                    reject("Nobody went on the Quest.");
                }
            }, 5000)
        })
    }
}

export default class ForestComponent {
    constructor(quest) {
        this.quest = quest;
    }

    execute = () => {
        return new Promise((resolve, reject) => {
             //Forest events happen here, etc.
        })
    }
}

现在……它起作用了。每个组件都可以更新给他们的任务,因此它可以删除玩家和更改 ID 等。但我不确定这是否是一种很好的做事方式。

标签: javascriptnode.js

解决方案


推荐阅读