async )
...
const client = redis.createClient()
const bot = new Telegraf(TOKEN)
...
bot.hears('Статистика', async (ctx) => {
let gameCnt = 0
let key = ctx.chat.id + ':game_cnt'
console.log(`1${gameCnt}`)
await client.get(key, (err, data) => {
gameCnt = JSON.parse(data)
console.log(`2${gameCnt}`)
})
console.log(`3${gameCnt}`)
return ctx.reply(`Сыграно игр: ${gameCnt}`)
})
в консоле сообщения появляются в порядке 1 3 2 и в ответе я получаю 0 игр, хотя в базе ненулевое значение. Подскажите как исправить?
client.get в callback стиле, эвейт там сюдя по всему не нужен
то, что ты добавляешь await перед вызовом функции, не промисифицирует её тебе надо либо обернуть в промис вызов client.get, либо писать весь остальной код в коллбеке, который передаёшь в неё
Обсуждают сегодня