"typeError: Cannot read property 'username' of undefined."

"typeError: Cannot read property 'username' of undefined."

这是我的 discord 机器人 >top10 命令的代码:

const Discord = require("discord.js");

module.exports.run = async(bot, message, args, con) => {

  const top10query = `SELECT user, points, lstmsg FROM scores WHERE guild = '${message.guild.id}' ORDER BY cast(points as SIGNED) ASC LIMIT 10`
  //const top10 = con.query(top10query)

  const query = querytxt => {
    return new Promise((resolve, reject) => {
      con.query(querytxt, (err, results, fields) => {
        if (err) reject(err);
        resolve([results, fields]);
      });
    });
  };
  const [results, fields] = await query(top10query);

  const map1 = results.map(results => `User: ${(bot.fetchUser(results.user)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);
  message.channel.send(map1)
}
module.exports.help = {
  name: "top10",
  usage: "``prefix`` top10",
  description: "top 10 points",
}

"user" 的数据存储为用户 ID。当我使用 >top10 命令时,我得到 'undefined'。

有什么想法吗?


编辑:
我试过替换

const map1 = results.map(results => `User: ${(bot.fetchUser(results.user)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);
      message.channel.send(map1)

const map1 = results.map(results => `User: ${(bot.users.get(results.user.id)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);

但是我收到这个错误:

(node:21128) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'username' of undefined

替换

User: ${(bot.fetchUser(results.user)).username

与:

User: ${bot.users.get(results.user).username

你想做

const map1 = await results.map(async result => {
        const user = await client.fetchUser(result);
        return `User: ${user.username} Messages: ${result.points} Last message: ${result.lstmsg}`; 
});