如何在JavaScript中获取discord.js fetch返回的Map内User对象的属性
获取Discord.js返回Map中的User用户名
嘿,我来帮你搞定这个问题!你遇到的核心问题是:你拿到的是一个Map对象,而非直接的User实例,所以直接访问.username肯定行不通。不过好在这个Map只有一组键值对,而且键和User的id完全一致,咱们可以用这几种简单方法拿到目标用户名:
方法1:直接提取Map的第一个值
Map的values()方法会返回一个迭代器,咱们把它转换成数组后,取第一个元素就是User对象:
// 假设你的Map存在userMap变量中 const [user] = [...userMap.values()]; const username = user.username; console.log(username); // 输出someUserName
方法2:通过键获取User(如果需要用到id)
如果你同时需要用户id,也可以先拿到第一个键,再用get()方法取出User:
const [userId] = [...userMap.keys()]; const user = userMap.get(userId); const username = user.username;
方法3:用for...of循环遍历(通用场景适配)
哪怕以后Map里有多个元素,这个方法也能通用,现在咱们只需要拿第一个就好:
for (const [id, user] of userMap) { const username = user.username; console.log(username); break; // 只有一个元素,拿到就跳出循环 }
额外注意:确保fetch已完成异步处理
如果你调用fetch后没加await,那可能拿到的是未resolved的Promise,而非实际的Map。一定要正确处理异步逻辑:
// 正确的异步处理示例 async function getUserUsername() { const userMap = await yourDiscordFetchMethod(); // 替换成你的实际fetch方法 const [user] = [...userMap.values()]; return user.username; }
这样应该就能顺利拿到你想要的username啦!如果还有代码细节需要排查,随时告诉我~
内容的提问来源于stack exchange,提问作者xFgn
相关产品推荐
相关产品推荐

