【发布时间】:2021-01-12 11:56:39
【问题描述】:
我目前正在制作一个不和谐的机器人,但我遇到了一个问题。我对 discord.js 和 node.js 还是很陌生。这是我的代码:
module.exports.run = async (bot, message, args) => {
function getMenu() {
var hpmenu = {};
return new Promise(function(resolve, reject) {
dashboard.readServerBoundValue(
`${message.guild.id}`,
'PREFIX',
async function(output) {
if (output) {
var prefixxx = output;
} else {
var prefixxx = config.botPrefix;
}
//=====================================================================================================
fs.readdir('./src/commands/', (err2, files2) => {
files2.forEach((f2, i2) => {
hpmenu[f2] = new discord.MessageEmbed();
hpmenu[f2].setTitle(`${f2}`);
console.log('Added catagory ' + f2);
//=========================================================================================
fs.readdir(`./src/commands/${f2}`, (err, files) => {
files.forEach((f, i) => {
const cmd = f.replace('.js', '');
hpmenu[f2].addField(cmd, 'test');
console.log('Added command ' + cmd);
//=====================================================================================================
});
resolve(hpmenu);
});
});
});
}
);
});
}
async function main() {
var output = await getMenu();
message.channel.send(output['developer']);
}
main();
};
此代码没有任何错误,但这是我遇到的问题:
问题在于它在完成 getMenu 函数之前运行了 main 函数。
如何解决这个问题?我已经阅读了多篇关于此的帖子。感谢大家阅读!
【问题讨论】:
标签: javascript node.js asynchronous discord discord.js