jeerjmin
@jeerjmin

Как обрабатывать ошибки с async/await?

Есть кусок кода, работает на коллбеках таким образом:

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 promisify, редис можно возвращать промисы:

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

Результат возвращается, вопросов нет, а где мне взять ошибку, если она будет?
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl
try {
  const result = await redis.asyncGet(token)
} catch (e) {
  console.log('ooops', e)
}


ну или по старинке

redis.asyncGet(token)
  .then(result => { ... })
  .catch(error => { ... })
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы