我目前在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()
之类的。所有未定义的
答案 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 => {
...
});
})
希望我对您有帮助!