无法从猫鼬查询内部更新外部数组

时间:2019-11-13 21:48:12

标签: node.js mongodb mongoose

我有一个要填充对象的数组,但是控制台会打印出[]。我知道这是猫鼬异步性质的问题,但我不确定如何解决...我希望itemCart充满用户的所有物品。

任何指导/帮助将不胜感激。谢谢!

代码如下:


let itemCart = [];
  User
  .findById(req.params.username)
  .then(user => {
    for (let i = 0; i < user.cart.length; i++) {
      let itemId = user.cart[i];
      Item.findById(itemId).then(item => {
        itemCart.push(item);
      });
    }
    console.log(itemCart); // returns []

  })
  .catch(err => {
    console.error(err)
  });


1 个答案:

答案 0 :(得分:2)

您可以像这样应用async / await:-

let itemCart = [];
User
.findById(req.params.username)
.then(async user => {
 for (let i = 0; i < user.cart.length; i++) {
  let itemId = user.cart[i];
  Let item = await Item.findById(itemId);
   itemCart.push(item);

  }
  console.log(itemCart); // now it will return the array

  })
  .catch(err => {
   console.error(err)
   });
相关问题