Node.js 什么';在这种情况下,removeListener的正确用法是什么?

Node.js 什么';在这种情况下,removeListener的正确用法是什么?,node.js,Node.js,Bot Discord图书馆 bot.on('messageCreate', msg => { // do some stuff bot.removeListener('messageCreate', msg); }); 我经常遇到的一个错误是侦听器必须是一个函数。 messageCreate在收到消息时触发,msg是对消息类的引用,其中包含消息id、作者等 我试图得到的是bot正在等待用户的特定回复,例如Yes或No。如果bot是节点的EventEmitter,则可以使

Bot Discord图书馆

bot.on('messageCreate', msg => {
    // do some stuff
    bot.removeListener('messageCreate', msg);
});
我经常遇到的一个错误是
侦听器必须是一个函数
。 messageCreate在收到消息时触发,msg是对消息类的引用,其中包含消息id、作者等


我试图得到的是bot正在等待用户的特定回复,例如Yes或No。

如果
bot
是节点的
EventEmitter
,则可以使用
once
方法而不是
on
方法,以便在调用侦听器一次后自动删除侦听器

bot.once('messageCreate', msg => {
  // do some stuff
  // you don't need to remove the listener by yourself!
});
为了直接回答您的问题,
RemovelListener
的第二个参数必须是您在上传递给
的侦听器函数

var listener = msg => {
  // do some stuff
  bot.removeListener('messageCreate', listener);
};
bot.on('messageCreate', listener);

啊,我明白了。这比我想象的要简单得多。工作如期!在新版本的API中,什么将取代bot.once函数?我不确定Discord API。你有它的API文档的链接吗?