我一直在面对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)
我成功获取了结果,但是如何获取错误?
谢谢
答案 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.' })
}