Как сделать отмену выполнения FSM aiogram
В боте есть много функций, которые являются состояниями. Как сделать отмену выполнения состояний? Я понимаю, что можно просто в каждой функции написать что-то вроде:
if message.text == '/cancel':
await message.answer('действие отменено')
await state.finish()
return
но нельзя ли создать какую-то универсальную функцию, которая бы при команде /cancel делала state.finish()?
Заранее спасибо за помощь и извиняюсь если плохо объяснил, задавайте любые вопросы, всё уточню
Ответы (1 шт):
Автор решения: ZxNuClear
→ Ссылка
Можете добавить такой хэндлер:
@dp.message_handler(state='*', commands='cancel')
async def cancel_handler(message: types.Message, state: FSMContext):
await message.answer('Действие отменено')
await state.finish()