javascript - 按顺序初始化类
问题描述
我正在构建一个 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 等。但我不确定这是否是一种很好的做事方式。
解决方案
推荐阅读
- objective-c - 将标题设置为状态项可可的自定义视图
- amazon-ec2 - 如何在 AWS EC2 中安装 docker 并使用域进行端口映射
- .net - 如何在 db first 实体框架中使用视图
- sql - 从两个相关的表中获取信息
- image - 显示图像时出现有限的 GraphicsMagick 错误
- powerbi - 计算列 - 使用 DAX IN POWERBI 提供了一个多值表 -
- .htaccess - 重定向除少数页面外的所有页面
- android - 如何从 Android&FCM 中的推送通知中打开特定活动?
- symfony - Symfony4 在 PersistentCollection 中搜索
- date - Pentaho:从 DATE 到 TIMESTAMP 的无效转换