如何仅在 node-telegram-bot-api 中删除 bot.on() 函数?

问题描述

我怎样才能删除 bot.on () 以重新运行 bot.onText ()? 因为如果我做 bot.removeListener('message') 它也会删除 bot.onText()

       bot.onText(/\/login/,(msg) => {

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

       });

解决方法

第二个参数,应该是你的听众的一个函数。 例如:

let handler = (msg) => {
  let chatId = getChatId(msg);
  bot.sendMessage(chatId,"Login");
  bot.removeListener("message",handler);
};

bot.onText(/\/login/,msg => {
  bot.on("message",handler);

  bot.on("message",msg => {
    let chatId = getChatId(msg);
    bot.sendMessage(chatId,"Another listener");
  });
});

如您所见,两个侦听器第一次都起作用,第二次尝试输入内容时,只有第二个侦听器起作用。

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...