Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按顺序初始化类_Javascript_Node.js - Fatal编程技术网

Javascript 按顺序初始化类

Javascript 按顺序初始化类,javascript,node.js,Javascript,Node.js,我正在构建一个供人们交互的RPG任务机器人,但我不完全确定我想如何实现progression 我有一个“任务”类,它包含所有数据,比如谁参与、ID等。我已经将每个区域划分为多个组件。(即,您有一个开始组件,然后让我们假设一个林,等等)。我只是不知道如何让数据在他们之间传递 榜样; 在App.js中 try { await new BeginComponent(this).execute(); await new ForestComponent(this).

我正在构建一个供人们交互的RPG任务机器人,但我不完全确定我想如何实现progression

我有一个“任务”类,它包含所有数据,比如谁参与、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等等。但我不确定这是否是一种很好的方法。

这些“组件”类本身似乎没有任何状态,它们的实例根本不被使用,它们只有一个只被调用一次的方法。您可能希望将它们转换为简单的函数:
wait begin(this);等待森林(本)@Bergi没错,谢谢。太习惯Java了,对不起!:P