如何在 Discord.js 中使用超时

问题描述

我正在开发一个 discord bot,需要 update 某人的昵称,然后在 2 小时后将其恢复正常。

当超时设置为几秒钟时,我已经设置好所有代码并开始工作,但是当我将超时时间推到 2 小时时,我会收到一个 Failed requestdiscord 服务器。我认为这是因为该频道没有保持连接那么长时间 - 不确定。

这里是错误

UnhandledPromiseRejectionWarning: FetchError: request to https://discord.com/api/v7/guilds/297251675616444416/members/711322838556213319 Failed,reason: getaddrinfo ENOTFOUND discord.com
        at RequestHandler.execute (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\rest\RequestHandler.js:93:15)
        at runMicrotasks (<anonymous>)
        at processticksAndRejections (internal/process/task_queues.js:93:5)
        at async RequestHandler.push (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\rest\RequestHandler.js:39:14)
        at async GuildMember.edit (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\structures\GuildMember.js:312:5)

这是代码本身:

function nicknameTimeout(memberID,memberGuildID) {
    guildVar = client.guilds.cache.get(memberGuildID);
    member = guildVar.members.cache.get(memberID);

    setTimeout(() => {
        guildVar = client.guilds.cache.get(memberGuildID);
        member = guildVar.members.cache.get(memberID);
        nickname = member.nickname;
        
        if (typeof nickname === "object") {
            nickname = member.user.username;
        }
        if (nickname.endsWith("UPDATED***")) {
            nickname = nickname.slice(0,-11);
            member.setNickname(nickname,"");
        }
    },7200000);
}

有关如何在超时后强制重新连接到客户端的任何想法或任何其他解决方法将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)