Javascript 游戏中的每个用户都未定义,即使它不应该被定义
我正在尝试创建一个Discord机器人,它检查用户正在玩的游戏,并自动分配合适的角色。目前,我仍在想如何为用户获得游戏。我设法得到了服务器上所有用户的列表,但它总是说游戏未定义,即使是当前正在玩游戏并在discord上显示的人。我不确定到底是什么问题,因为我对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
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的游戏属性。