Size: a a a

Боты на Telegraf

2017 December 07

AJ

A. Jah. in Боты на Telegraf
Да заметил
источник

AJ

A. Jah. in Боты на Telegraf
Выход не нашел
источник

OF

Oleg 🌯 Fomin in Боты на Telegraf
A. Jah.
Сделать доступым экзмепляр класса в enter никаким образом нельзя?
во фреймворках такого рода все пробрасывается чз контекст
источник

OF

Oleg 🌯 Fomin in Боты на Telegraf
ctx.state.a = new A()
источник

AJ

A. Jah. in Боты на Telegraf
Oleg 🌯 Fomin
во фреймворках такого рода все пробрасывается чз контекст
Да понятное дело, но не работает...
источник

AJ

A. Jah. in Боты на Telegraf
Уже решал вопрос разными способами
источник

OF

Oleg 🌯 Fomin in Боты на Telegraf
ctx доступен в любых обработчиках
источник

AJ

A. Jah. in Боты на Telegraf
В том то и дело что не везде передается то, что нужно
источник

OF

Oleg 🌯 Fomin in Боты на Telegraf
если надо подбросить между запросами (тк ctx.state "живет" только в рамках одного запроса) то используй либо

ctx.session - живет в рамках времени жизни приложения

либо ctx.scene.state - живет в пределах работы одной сцены.

перед этим на старте приложения тебе нужно инициализировать соотв движок сессии: в памяти, в редисе и тп. в примерах есть
источник

AJ

A. Jah. in Боты на Telegraf
ctx.scene.state вот эт не использовал
источник

AJ

A. Jah. in Боты на Telegraf
Сейчас гляну
источник

V

Vitaly in Боты на Telegraf
Просто enter это отдельный обработчик, он не вызывает цепочку самой сцены
источник

OF

Oleg 🌯 Fomin in Боты на Telegraf
A. Jah.
ctx.scene.state вот эт не использовал
это как ctx.session, но создается в момент scene.enter и убивается в момент scene.leave если грубо
источник

AJ

A. Jah. in Боты на Telegraf
Vitaly
Просто enter это отдельный обработчик, он не вызывает цепочку самой сцены
Выхода вообщем нет, да? 😄
источник

AJ

A. Jah. in Боты на Telegraf
утешили)
источник

AJ

A. Jah. in Боты на Telegraf
Oleg 🌯 Fomin
это как ctx.session, но создается в момент scene.enter и убивается в момент scene.leave если грубо
Если в use (middleware) сделать ctx.session = {...}, то в enter он не доступен
источник

AJ

A. Jah. in Боты на Telegraf
Точно также как и ctx.state
источник

AJ

A. Jah. in Боты на Telegraf
И ctx.flow.state

И ctx.scene
источник

V

Vitaly in Боты на Telegraf
Просто enter это отдельный обработчик, он не вызывает цепочку самой сцены
источник

V

Vitaly in Боты на Telegraf
сцена - это состояние, а при переходе на нее хз где будет бот
источник