【发布时间】:2020-05-13 03:28:09
【问题描述】:
我试过这段代码:
module.exports = async (client, channel) => {
if (channel.type === "dm" || channel.type === "group") return;
var guild;
client.guilds.forEach(e => {
e.fetchAuditLogs({type: 'CHANNEL_DELETE'})
.then(audit => {
if (audit.entries.first().id === channel.id) guild = e;
});
});
if (!guild) return;
};
我想获取通过事件参数传递的频道 ID 的公会。
这是在 channelDelete 事件中,所以我不能做client.channels.get(channel.id),因为该集合中不存在 ID。我需要从审计日志中获取信息。
问题是我觉得这有点过度使用 API,或者可能有更好的方法,而不是必须遍历这个机器人所在的每个公会。
此外,实际代码无法按预期工作。似乎它在实际循环完成之前到达if (!guild) return;,这意味着它总是会返回。
那么,我该怎么做才能让代码一步一步地流动,这样它就不会一直返回,或者是一种改进不那么密集的代码的方法(如果这种方法在 API 上是密集的/主机)。
【问题讨论】:
标签: node.js discord.js