На текущий момент имею:
При загрузке сцен ставлю:
scene.on("message", async (ctx, next) => await utils.keyboard.exitHandler(ctx, next))
scene.on("message", async (ctx, next) => await utils.keyboard.backHandler(ctx, next))
exitHandler:
spoiler
module.exports = async (ctx, next) => {
if("text" in ctx.message){
if(ctx.message.text === ctx.i18n.t("exitButton")){
if(++ctx.session.count % 2 === 0){
ctx.session.count = 0;
return next()
}
//get state
if(ctx.session.scenesHistory.length - 2 >= 0){
let last = ctx.session.scenesHistory[ctx.session.scenesHistory.length - 2]
ctx.session.scenesHistory = ctx.session.scenesHistory.splice(ctx.session.scenesHistory.length - 2, 1)
return ctx.scene.enter(last)
}else {
return ctx.scene.enter("start")
}
}
}
return next()
}
backHandler
spoilermodule.exports = async (ctx, next) => {
if("text" in ctx.message){
if(ctx.message.text === ctx.i18n.t("backButton")){
//get state
if(ctx.session.__scenes.cursor !== 1){
ctx.wizard.selectStep(ctx.session.__scenes.cursor - 2)
}else {
ctx.reply("Не могу перейти на предыдущий этап. Используйте кнопку " + ctx.i18n.t("exitButton"))
}
return next()
}
}
return next()
}
Проблема такая: иногда, бот начинает без конца делать "выход" и ложиться с ошибкой
Promise timed out after 90000 milliseconds
Пытался остановить бесконтрольные выполнения, но не удачно.
Вопрос - с чем такое может быть связано и как это решить?