Node.js 如何从discord.js中的ID获取用户名
我存储了ID或昵称(仅字符串,因为它们不是不一致的用户)。现在我想从属于discord的用户那里获取用户名。虽然我有一个[承诺对象],但我无法访问。我读到了一些关于成功的东西,但不是成功。我不知道在这种情况下结构会如何:Node.js 如何从discord.js中的ID获取用户名,node.js,discord.js,Node.js,Discord.js,我存储了ID或昵称(仅字符串,因为它们不是不一致的用户)。现在我想从属于discord的用户那里获取用户名。虽然我有一个[承诺对象],但我无法访问。我读到了一些关于成功的东西,但不是成功。我不知道在这种情况下结构会如何: for (var i = 0; i < ids.length; i++){ let tag = client.fetchUser(ids[i]); if(tag.username){ //if exist put his use
for (var i = 0; i < ids.length; i++){
let tag = client.fetchUser(ids[i]);
if(tag.username){
//if exist put his username
title.push(tag.username);
info += icons[i] + ' = ' + tag.username + ' \n';
}else{
//if not exist, means we saved the nickname only (string)
title.push(size[i]);
info += icons[i] + ' = ' + size[i] + ' \n';
}
}
const embed = new Discord.RichEmbed()
.setTitle(title.join(' - '))
.setColor(0x00AE86)
.setDescription(info)
.setFooter("none")
.setTimestamp()
.setURL("https://discord.gg/sHanmsPX")
.addField("-", "-", true);
for(变量i=0;i
请使用Discord.JS v12,而不是v11
请阅读以下内容:当你发布一个问题时,一定要去掉discord.gg的邀请或使其无效!这适用于任何敏感信息
不和谐v11版本
因此,fetchUser
函数返回封装在承诺中的用户。如果您的for
代码在函数中,则将其设置为异步
,并设置:
let tag=client.fetchUser(id[i]);
进入:
let tag=wait client.fetchUser(id[i]);
您也可以这样做,不需要异步/等待:
let tag=client.fetchUser(id[i])。然后(u=>{
//你的代码在这里。。。
});
Discord v12版本
使用v12,它已更新,但不再有fetchUser
方法。您必须使用以下选项:
let tag=client.users.fetch(id[i]);
//这是一个承诺!使用async/await或.then after。
您可以使用缓存,但这适用于bot看到的或与之交互的用户:
let tag=client.users.cache.get(id[i]);
//这不是承诺。
您使用的是v11,而DJS不支持版本11。请更新到v12。请注意,因为它们非常重要。