Javascript 在discord.js中的时间限制之前获取收集的邮件

Javascript 在discord.js中的时间限制之前获取收集的邮件,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,有没有办法在时间限制到期之前从discord.js收集器接收消息 我尝试使用collector.on collected,但它在我设置的时间限制后触发 以下是我目前拥有的: this.collected = false this.collector = new Discord.MessageCollector(msg.channel, m => m.author.bot === false,{time: 10000}); this.collector.on(

有没有办法在时间限制到期之前从discord.js收集器接收消息

我尝试使用collector.on collected,但它在我设置的时间限制后触发

以下是我目前拥有的:

this.collected = false
        this.collector = new Discord.MessageCollector(msg.channel, m => m.author.bot === false,{time: 10000});
        this.collector.on('collect', message =>{
            if(!this.collected){
                this.collected = true
                console.log(message)
                msg.channel.send(message.content)
                this.collector.stop()
               //Insert the same thing here(Copy+Paste the same code here)
            }
        });
(这一切都是为了全局性,因为它必须是递归的)


我希望收集器在接收到第一条消息时发出一个事件,但对于当前代码,它仅在时间限制后才会发出该事件。

经过一些测试后,似乎只有在达到set选项后才会发出该事件。它似乎不是在收到消息时收集消息,而是在计时器用完时收集消息。我不确定这是否是故意的

由于您只需要一定数量的消息,因此可以设置收集器的选项。然后,如果在达到
时间
限制之前收集了该数量的消息,收集器将发出
收集
事件并停止

this.collector=newdiscord.MessageCollector(msg.channel,m=>!m.author.bot,{maxMatches:1,time:10000});
this.collector.on('collect',message=>{
msg.channel.send(message.content)
.catch(控制台错误);
});

每次收集器检测到通过过滤器的消息时,都应调用collect事件,因此您不必等待超时来获取收集的消息。如果删除
if(!this.collected)
条件会发生什么?哦,对不起,我忘了添加我只需要收集一条消息,不管怎样,它会遍历所有消息,我只需要收集一条消息。collector.stop()应该停止收集器;所以你的情况对我来说有点多余。否则,您的代码对我来说似乎很好,我不明白为什么它不能按预期工作。你的评论是什么意思?顺便说一句,在这里插入同样的内容?您的问题中没有包含更多的代码吗?是的,它必须是递归的。first()将崩溃,因为收集的变量包含消息,而不是collectionMy bad,编辑了代码。我在想。