Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Javascript 游戏中的每个用户都未定义,即使它不应该被定义_Javascript_Node.js_Bots_Discord_Discord.js - Fatal编程技术网

Javascript 游戏中的每个用户都未定义,即使它不应该被定义

Javascript 游戏中的每个用户都未定义,即使它不应该被定义,javascript,node.js,bots,discord,discord.js,Javascript,Node.js,Bots,Discord,Discord.js,我正在尝试创建一个Discord机器人,它检查用户正在玩的游戏,并自动分配合适的角色。目前,我仍在想如何为用户获得游戏。我设法得到了服务器上所有用户的列表,但它总是说游戏未定义,即使是当前正在玩游戏并在discord上显示的人。我不确定到底是什么问题,因为我对JavaScript非常陌生 我当前的代码: client.on('ready',()=>{ getAllUsersGames(); }); 函数getAllUsersGames(){ var server=client.guilds.c

我正在尝试创建一个Discord机器人,它检查用户正在玩的游戏,并自动分配合适的角色。目前,我仍在想如何为用户获得游戏。我设法得到了服务器上所有用户的列表,但它总是说游戏未定义,即使是当前正在玩游戏并在discord上显示的人。我不确定到底是什么问题,因为我对JavaScript非常陌生

我当前的代码:

client.on('ready',()=>{
getAllUsersGames();
});
函数getAllUsersGames(){
var server=client.guilds.cache.get(“服务器Id”);
var memberList=server.members;
memberList.cache.forEach(member=>console.log(member.user.username+“-”+member.user.presence.activities.name));

}
如果我假设此行是http GET请求
var-server=client.guilds.cache.get(“服务器Id”)
然后您必须使用
async
函数并
等待
此请求

async function getAllUsersGames(){

    var server = await client.guilds.cache.get("Server-Id"); 

    var memberList = server.members;  
    memberList.cache.forEach(member => console.log(member.user.username + " - " + member.user.presence.activities.name));
}

未定义的原因是,在使用请求中的数据填充变量之前,
console.log
正在发生。

出现此问题的原因是,您返回了一个数组,因此您可以在数组中循环,也可以使用
activities[0]获取第一个活动

我想出来了:只要使用


member.user.presence.activities
特别是哪个部分说
undefined
?请分享一些示例数据,说明
memberList
应该是什么样子的
paul5.0-未定义的online509-未定义的terraix-未定义的57-未定义的D3SERT-未定义的
等等。用户名没问题,但我就是无法让游戏正常运行。@Learning Daily它本质上是一个成员对象列表,其中包含用户名等匹配属性。听起来似乎有道理,但我仍然无法为每个用户定义。我的代码中可能还有另一个错误吗?我不熟悉discord API,但我可能会调试并逐步检查我的代码,尝试
console.log(member)
如果
member===undefined
则问题在上面如果已定义,则问题将尝试访问未定义键中的值。它不能是未定义的成员,因为用户名工作起来很有魅力。但我认为他们改变了游戏信息的工作方式,因为在所有帖子中我都能发现他们使用的是member.users.game。然而,在文档中没有提到一个名为game In user的游戏属性。