排行榜.在创建关卡排行榜时,地图并不是一个功能



我正试图获得XP/级别的排行榜和运行(与存储在mongoDB中的数据),并不断获得这种类型的错误(排行榜。map不是一个函数)。

我可以使用!rank命令检查级别,但使用!leaderboard命令会遇到问题。

我的排行榜代码是:

if(command === "leaderboard" || command === "lb") {
const rawLeaderboard = await Levels.fetchLeaderboard(message.guild.id, 5);
if (rawLeaderboard.length < 1) return reply("PandaBot says nobody's in leaderboard yet! 🐼");
const leaderboard = Levels.computeLeaderboard(client, rawLeaderboard); 
const lb = leaderboard.map(e => `${e.position}. ${e.username}#${e.discriminator}nLevel: ${e.level}nXP: ${e.xp.toLocaleString()}`);
message.channel.send(`${lb.join("nn")}}`)
}

我能想到的就是把它改成await leaderboard.map,但是我暂时不能用电脑来测试它。

任何帮助,这将是非常感激!

Levels.computeLeaderboard(client, rawLeaderboard)返回一个承诺,所以你要么需要使用.then()await来获得结果:

const leaderboard = await Levels.computeLeaderboard(client, rawLeaderboard);
const lb = leaderboard.map(
(e) =>
`${e.position}. ${e.username}#${e.discriminator}nLevel: ${
e.level
}nXP: ${e.xp.toLocaleString()}`,
);
message.channel.send(lb.join('nn'));

没关系。添加了await Levels.computeLeaderboard,它工作了😊

最新更新