Discord.js:AbortError:用户中止了请求

8le*_*ess 3 javascript bots node.js discord discord.js

我一直在研究我的票证系统及其成绩单记录过程,有一天这个错误开始出现,成绩单开始发送失败。这在以前并不是什么事情。完整的错误是:

[Error Handling System] Multiple Resolves
reject Promise {
  <rejected> AbortError: The user aborted a request.
      at abort (/PC/Bot/bot/node_modules/discord.js/node_modules/node-fetch/lib/index.js:1448:16)
      at EventTarget.abortAndFinalize (/PC/Bot/bot/node_modules/discord.js/node_modules/node-fetch/lib/index.js:1463:4)
      at EventTarget.[nodejs.internal.kHybridDispatch] (node:internal/event_target:460:20)
      at EventTarget.dispatchEvent (node:internal/event_target:405:26)
      at abortSignal (node:internal/abort_controller:97:10)
      at AbortController.abort (node:internal/abort_controller:122:5)
      at Timeout.<anonymous> (/PC/Bot/bot/node_modules/discord.js/src/rest/APIRequest.js:72:49)
      at listOnTimeout (node:internal/timers:557:17)
      at processTimers (node:internal/timers:500:7) {
    type: 'aborted'
  }
}
Run Code Online (Sandbox Code Playgroud)

我的代码是:

setTimeout(() => {
    interaction.channel.delete({ reason: `[Ticket System] Ticket Closed` }).then(async ch => {
      const mdb = require('./../models/tickets')
      mdb.findOne({ Channel: ch.id }, async (err, data) => {
        if (err) throw err;
        if (data) {
          const openedBy = interaction.guild.members.cache.get(ch.topic.split(" ").splice(1).toString())
          fs.writeFileSync(`../${ch.name} - ${ch.id}.txt`, data.Content.join("\n\n"))
          let embed = new Discord.MessageEmbed()
            .setTitle("Ticket Closed")
            .addField("<:ticket1:872962350473433089> Ticket Name", `${ch.name} (${ch.id})`)
            .addField(`<:person:890913045457563718> Opened By`, `${openedBy}`)
            .addField("<:admin:872930262516908113> Closed By", `${interaction.user} (${interaction.user.id})`)
            .addField(`<:open:914148680959934514> Open Time`, `<t:${moment(ch.createdTimestamp).format("X")}>`)
            .setTimestamp()
            .setFooter({ text: `ID: ${uuidv4()}` })
          const atta = new Discord.MessageAttachment(fs.createReadStream(`../${ch.name}-${ch.id}.txt`))
          const logChannel = client.channels.cache.get(transcripts_channel);
          logChannel.send({ embeds: [embed], files: [atta] })
          mdb.findOneAndDelete({ Channel: ch.id })
        }
      })
    })
  }, 10000)
Run Code Online (Sandbox Code Playgroud)

我尝试过删除 MongoDB 部分,尝试减少超时等等......这些都没有帮助。

提前致谢!

小智 6

这是 Discord API 错误,Discord 收到来自 Discord.js 的请求,但处理时间太长,因此被中止。有关此问题和discord.js拉取请求的更多信息。