@RedSs

Дублирование уведомления при повторном выполнении использовании функции nodejs?

Есть обработчик события на case yes, и он отлично выполняет его, но я обнаружил баг когда несколько раз выполняешь
событие дублируется уведомление "Ваш город успешно сохранен/изменен" . Если два раз выполняешь то 2 раза дублируется, если 3 то 3 раза и т.д. Как можно пофиксить этот баг?
//обрабатываем инлайн клавиатуру
    bot.on('callback_query', query => {
        const { chat, message_id, text } = query.message
        switch (query.data) {
            case 'yes':
//проверяем наличие юзера в бд если его нет заносим, иначе обновляем данн
                users.update({ids: `${msg.from.id}`},{$set:{login: `${chat.first_name}`,coords: `${coord}`,fullAddress:`${fullAddress}`}},{upsert:true})
                    .then(users => {
                        bot.sendMessage(chat.id, 'Ваш город успешно сохранен/изменен',{
                            reply_markup:{keyboard:keyboard.home,resize_keyboard: true}
                        })
                    })
                    .catch(e => bot.sendMessage(chat.id, 'Неизвестная ошибка, повторите ваш запрос позже'))


                break
            case 'no':
                bot.sendMessage(chat.id, 'Хорошо попробуйте ввести город еще раз\nНапример /gorod Самара,Россия')
                break
        }

        bot.answerCallbackQuery({
            callback_query_id: query.id
        })
    })
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
Судя по приведенному куску кода , описанное в вопросе поведение не наблюдается. На правах гадалки предположу что ты устанавливаешь повторно листенеры на прослушку события и у тебя течет память. Ищи в коде подобные места, вероятно проблема такая.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы