основной пакет (отдельный пакет telegraf-flow теперь устанавливать не надо вроде как). Соответственно, объект Flow теперь называется теперь Stage. Документация традиционно скупа, как мужская слеза, но вот пример с офсайта: если с telegraf-flow раньше работал, то по-моему разницы никакой http://telegraf.js.org/#/?id=stage
2. Ну очевидно же
scene.command('a', ctx => ctx.reply('/b'))
scene.command('c', ctx => ctx.reply('/d'))
scene.on('message', ctx => ctx.reply('undefined'))
Вызовы .use, .on, .command, .hears, .action и тп — это же по сути middleware и результат будет зависеть от того, в каком порядке они стоят у тебя в коде — как в Express, koa и всех остальных фреймворках с такой архитектурой.
Т.е. начала отработают обработчики команд, если пользователь введет соотв команды. И на этом обработка запроса прекратится, тк есть только reply(...) но нет команды на продолжение обработки запроса next()
А если он ввел что-то другое — отработает уже scene.on('message'...
Вау, спасибо за развёрнутый ответ! Собственно, так и сделал в итоге
2. Не будет работать, если ты внутри сцены. Это в текущем релизе. В develop ветке пофиксено.
Обсуждают сегодня