Как я могу обработать ошибку с Redis и Bluebird? - PullRequest
0 голосов
/ 18 марта 2019

Я столкнулся с проблемой с redis и async await.

У меня есть старый redis.get с обратным вызовом:

redis.get(token, async (error, result) => {
            if (error) {
                return res.status(404).json({ msg: 'Confirm token is invalid.' });
            }

            if (result === null) {
                return res.status(400).json({ msg: 'Confirm token is expired.' });
            }
})

Но я хочу реорганизовать его в async /жду

bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
const result = async redis.asyncGet(token)

Я успешно получаю результат, НО как я могу получить ошибку?

Спасибо

1 Ответ

0 голосов
/ 18 марта 2019

Имея свой код, вам просто нужно окружить вызов redis с помощью синтаксиса async / await в инструкции try / catch:

bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);

try {
  const result = redis.get(token);
} catch (e) {
  return res.status(400).send({ msg: 'Confirm token is expired.' })
}
...