首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当尝试创建级别领导板时,Leaderboard.map不是一个函数。

当尝试创建级别领导板时,Leaderboard.map不是一个函数。
EN

Stack Overflow用户
提问于 2021-02-15 06:45:28
回答 2查看 307关注 0票数 0

当我运行命令时,我正在尝试获得XP/levels的领导板并运行(使用存储在mongoDB中的数据),并继续获得这个typeError (leaderboard.map不是一个函数)。

我可以使用一个!秩命令检查级别,但是遇到了!领导板命令的问题。

我的主板代码是:

代码语言:javascript
复制
    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("\n\n")}}`)
    }

我所能想到的就是将它更改为await leaderboard.map,但我暂时无法访问计算机来测试它。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-15 08:33:28

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

代码语言:javascript
复制
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('\n\n'));
票数 1
EN

Stack Overflow用户

发布于 2021-02-15 08:33:13

不要紧。增加了等待Levels.computeLeaderboard,它起了作用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66203741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档