Дублирование сообщений telegram bot. node-telegram-bot-api

Не могу понять как решить проблему с дублированием сообщений. Может нужно ставить bot.bot.removeListener('message', msg) перед запуском /start, но это не привело меня к желаемому результату. Помогите, пожалуйста, разобраться.

введите сюда описание изображения

class Move{
    public async start(bot: any){

        bot.onText(/\/start/, async (msg: any) => {
            bot.setMyCommands(commands)

            bot.sendMessage(msg.chat.id, '? Егор - ?‍? разработчик ?ПО с большим стажем️! ?‍♂️Егор - это ?талантливый специалист, который ?постоянно развивается в своей сфере и ?изучает новые технологии. Егор также ?‍?предан своему делу, что делает его ценным членом ?‍?команды и позволяет создавать ?высококачественные продукты. Егор - это ?профессионал, который стремится к ?совершенству и всегда готов помочь ?своим клиентам достичь их целей. ?', startButton)

            bot.on('callback_query', (query: any) => {


                switch (query.data){
                    case "portfolio":
                        portfolioMove.getMove(bot, msg) 
                        break
                    case 'about': 
                        aboutMove.getMove(bot, msg);
                        break;
                    case "services":
                        servicesMove.getMove(bot, msg);
                        break
                    case "chat":
                        chatMove.getMove(bot, msg)
                        break
                }
            })
            
        })

    }
}

export default new Move;

Ответы (1 шт):

Автор решения: PrivetMirmaMa

Я решил проблему вот таким способом, не знаю насколько он правильный, но теперь дублирования нет.

class Move{
    public async start(bot: any){

        const startMsg: any = await new Promise((res: any) => {
            for(let elem of [/\/start/, /\/restart/, /Вернуться к главному меню/]){
                bot.onText(elem, async (msg: any) => {
                    bot.setMyCommands(commands)
                    bot.sendMessage(msg.chat.id, '? Егор - ?‍? разработчик ?ПО с большим стажем️! ?‍♂️Егор - это ?талантливый специалист, который ?постоянно развивается в своей сфере и ?изучает новые технологии. Егор также ?‍?предан своему делу, что делает его ценным членом ?‍?команды и позволяет создавать ?высококачественные продукты. Егор - это ?профессионал, который стремится к ?совершенству и всегда готов помочь ?своим клиентам достичь их целей. ?', startButton)
                    res(msg)
                })
            }
        })
         

        bot.on('callback_query', (query: any) => {

            switch (query.data){
                case "portfolio":
                    portfolioMove.getMove(bot, startMsg) 
                    break
                case 'about': 
                    aboutMove.getMove(bot, startMsg);
                    break;
                case "services":
                    servicesMove.getMove(bot, startMsg);
                    break
                case "chat":
                    chatMove.getMove(bot, startMsg)
                    break
            }
        })

    }
}

export default new Move;
→ Ссылка