无法提取messagecollector值

时间:2020-05-18 01:53:38

标签: collections discord.js

我目前在MessageCollector事件中遍历end时遇到问题,例如:

collector.on('end', collected => {
   message.channel.send("Searching... \r\n");
   //  .log(`Collected ${collected.size} items`);
   //console.log(collected);
   console.log(collected.first(collected.size).content);

});

我尝试的所有事情都是不确定的,由于希望记录尽可能多的信息直到超时,因此实际的收集大小没有限制。但是,从此列表中获取实际结果证明是棘手的。我已经尝试过collected.values()之类的。所有未定义的

1 个答案:

答案 0 :(得分:0)

collected.first(collected.size).content的确是undefined,因为通过将收集到的大小作为数量放入collected.first()中,您将得到Message的数组,因此您需要进行迭代例如,它带有forEach循环以获取每个消息的内容。

顺便说一句,collected.first(collected.size)毫无用处,因为您已经在collected中获得了所有消息,除非您想从Collection中获得一个数组。但是Collection.array()会更适合从Collection获取数组。

如果您没有注意到,Collection会扩展Map

因此,要对收集到的所有消息进行迭代,建议您执行以下操作:

collector.on("end", collected => {
    collected.forEach(message => {
        ...
    });
})

希望我对您有帮助!