Xandr24
@Xandr24
учиться и еще раз учиться

Как получить результат promise при запросе в бд?

Добрый вечер всем. Скажу что прочел статью про промисы на хабре но не понял как можно на моем примере получить результат промиса а именно пользователей из базы данных. В статье на хабре говорится что внутри функции then можно сделать следующие 3 вещи
1. Вернуть (return) другой промис
2. Вернуть (return) синхронное значение (или undefined)
3. Выдать (throw) синхронную ошибку
А вот мой пример кода:
router.get('/index', (req, res) => {
  let getProfile = User.findAll({    <---- findAll - Метод sequelize а диалект у меня postgress
    offset: 0, limit: 1
  }).then(result => {
    return result
  })
  .catch(console.log.bind(console));
  console.log(getProfile);  <------- получаю Promise результат которого мне нужен (данные из БД)
  res.render('index', {data: getProfile});  <------ пробую вывести на клиенте данные из БД с помощью .ejs
});

Вот что выдает console.log(getProfile);
Promise {
  _bitField: 0,
  _fulfillmentHandler0: undefined,

  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined }

Подскажите пожалуйста как быть в этой ситуации?
  • Вопрос задан
  • 631 просмотр
Решения вопроса 1
0xD34F
@0xD34F
Почитайте про async/await, у вас будет что-то вроде:

async (req, res) => {
  let getProfile = await User.findAll

Ну или в then дёргайте res.render.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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