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

问题描述 投票:0回答:2

如何删除 bot.on () 以便重新运行 bot.onText ()? 因为如果我执行 bot.removeListener ('message') 它也会删除 bot.onText ()

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

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

       });
node.js node-modules telegram-bot node-telegram-bot-api
2个回答
0
投票

第二个参数,应该是你的听众的函数。 F.e.:

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


0
投票

使用此代码删除所有消息监听器

bot.removeAllListeners("message")

© www.soinside.com 2019 - 2024. All rights reserved.