我该如何处理Redis和Bluebird的错误?

时间:2019-03-18 18:30:10

标签: javascript node.js redis node-redis

我一直在面对Redis和异步等待的问题。

我有带回调的旧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.' });
            }
})

但是我想将他重构为异步/等待

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

我成功获取了结果,但是如何获取错误?

谢谢

1 个答案:

答案 0 :(得分:0)

有了代码,您只需要在try / catch语句中使用async / await语法将redis调用括起来:

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.' })
}