javascript - 如何获取大型公会 discord.js 的所有成员
问题描述
我正在尝试获取大型公会所有成员的 ID。这个公会有大约2000人。我正在使用这个:
const list = client.guilds.get("id");
list.fetchMembers().then(r => {
r.members.array().forEach(r => {
let userid = r.id
msg.channel.send(userid)
})
});
它适用于我的 3 人测试公会,但是一旦我与大型公会一起尝试,我就会收到此错误
(node:8632) UnhandledPromiseRejectionWarning: Error: Members didn't arrive in time.
at Timeout._onTimeout (c:\Users\Han75\Documents\bot\node_modules\discord.js\src\client\Client.js:436:7)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7)
我知道它是因为超时。我该如何阻止这个?
解决方案
假设您使用的是最新的稳定版本 (v12),您可以使用没有参数的GuildMemberManager#fetch来获取公会的所有成员。
推荐阅读
- laravel - 通过 Laravel 5.8 更改日期格式以将其保存在数据库中
- c - sprintf() 未正确对齐
- azure - Azure 应用服务上的出站连接超时
- node.js - Sequelize——一种定义动态属性的方法
- node.js - Angular 8 - 无法让 httpClient POST 与 Socket.io 一起完成它的工作?
- arrays - Kotlin 按一项对两个列表进行排序
- ios - 将图像大小减小到最大 100 kb,并在 iOS 中固定尺寸为 512x512
- javascript - 从 Ruby on Rails 输出哈希数组到 chart.js
- python - 导入类时未定义 NameError DataFrame
- java - 对于 commn-service 中存在的类,微服务项目在 mvn 包中找不到类