首页 > 解决方案 > Discordjs v12 - bulkDelete 抛出奇怪的异常

问题描述

大约 2 年前,我为我的服务器编写了一个简单的 Discord 机器人,它可以完成一些非常简单的任务。其中一些任务是 API 用户数据检索和其他基本消息操作。

编辑:我不想偷懒,所以我确实花了大约一个小时在谷歌和这里搜索,一无所获!

就在上周,我的机器人突然停止工作,经过数小时的研究,拔掉了我的头发,卡在 v11 上,msg.member收藏了一个神秘的 POOF,我终于了解了 v12。我将npm我的代码更新为 Discord 文档文档。简单,直到非常非常基本的功能。

我目前正在把头发从头上拉出来,试图使用他们非常“简单”的bulkDelete方法,这总是没有问题的,好吧,现在不行了。

这是我的原始代码:

msg.channel.messages.fetch({ limit: parseInt(count)}).then(
    messages => msg.channel.bulkDelete(messages)
);

它是做什么的?嘘,我不知道!它使node.js内部类吐出一个例外Discord.js,我没有足够的知识或任何知识。

这是胡言乱语:

未处理

0|索引 | TypeError: Object.entries(...).filter(...).flatMap 不是函数 0|index | 在新的 APIRequest (/root/Discord/node_modules/discord.js/src/rest/APIRequest.js:24:10) 0|index | 在 RESTManager.request (/root/Discord/node_modules/discord.js/src/rest/RESTManager.js:39:24) 0|index | 在 Proxy.options (/root/Discord/node_modules/discord.js/src/rest/APIRouter.js:30:19) 0|index | 在 MessageManager._fetchMany (/root/Discord/node_modules/discord.js/src/managers/MessageManager.js:140:75) 0|index | 在 MessageManager.fetch (/root/Discord/node_modules/discord.js/src/managers/MessageManager.js:68:86) 0|index | 在 processServerCMD (eval at (/root/Discord/index.js:10:1), :52:25) 0|index | 在 Client.client.on.msg (/root/Discord/index.js:65:13) 0|index | 在 Client.emit (events.js:198: 13) 0|索引| 在 MessageCreateAction.handle (/root/Discord/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)

我也尝试过简单地做这个非常简单的声明

msg.channel.bulkDelete(3 /*hardwritten integer for hair-loss purposes*/);

来源:https ://discordjs.guide/creating-your-bot/commands-with-user-input.html#caveats-2

一样的回应。

这是什么鬼东西TypeError: ....flatMap is not a function
难道我做错了什么?

msg.channel.messages确实是一个有效的集合,但是bulkDelete每次调用或获取都会导致上述异常。

在我从头上拔出最后几个毛囊之前,有人可以扇我一巴掌,要么让我知道我是个白痴,要么 Discord v12 完全坏了,我只是在一个声明上浪费了 4-1/2 小时。 . 笏

我是一个 C/C++ 人。我真的不知道我在这里做什么。

标签: node.jsdiscord.js

解决方案


问题解决了!我不得不对 Array.prototype.flatMaps 做更多的研究,结果证明 flatMaps 是 Node v11 及更高版本独有的。我仍在节点 10 上,因此导致了上述异常。

我希望这可以帮助其他人,因为这很头疼!

将您的 Nodejs 更新到 v12.x


推荐阅读