Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从discord.js中的ID获取用户名_Node.js_Discord.js - Fatal编程技术网

Node.js 如何从discord.js中的ID获取用户名

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

我存储了ID或昵称(仅字符串,因为它们不是不一致的用户)。现在我想从属于discord的用户那里获取用户名。虽然我有一个[承诺对象],但我无法访问。我读到了一些关于成功的东西,但不是成功。我不知道在这种情况下结构会如何:

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。请注意,因为它们非常重要。