0

Как поместить результат промиса в переменную? Мне надо что-то вроде этого:

var users = knex('users').then();
var cats= knex('categories').then();
var prods = knex('products').then();

res.render('index.ejs', {
   'users': users,
   'cats': cats,
   'prods': prods
});

Данный код не работает, в переменных users, cats, prods не массив или объект, а такой же промис.

1 Answers1

-1
let users, cats, prods;
knex('users').then(resp => users = resp);
knex('categories').then(resp => categories = resp);
knex('products').then(resp => products = resp);
res.render('index.ejs', {
    'users': users,
    'cats': cats,
    'prods': prods
});
Alex78191
  • 3,334
  • 1
  • 10
  • 21
  • 2
    А в чём смысл такого варианта, если в res.render попадёт 3 значения undefined? Ведь корректные значения переменным присваиваются в then, а значит, асинхронно и позже. – Regent Oct 08 '17 at 06:35
  • @Regent вопрос был не об этом Добавьте свой вариант – Alex78191 Oct 08 '17 at 06:46
  • тут нужен Promise.all или тупо цепочка обещаний, а не эти костыли – etki Oct 08 '17 at 06:52