Node js等待循环完成

问题描述 投票:0回答:1

我试图返回某个用户喜欢的事件列表,但是代码返回的数组似乎总是空的(返回在我的for循环之前执行。)>

router.route("/app/mylikes").get(async function(req, res, next) {
  var mylikes = [];

  const likes = await Like.find();

  likes.forEach(element => {
    bcrypt.compare(req.user.device_uuid, element.device_uuid, function(
      err,
      isMatch
    ) {
      if (isMatch) {
        mylikes.push(element.event_id);
      }
    });
  });
  res.send(mylikes);
});

用户的uuid在表中进行了哈希处理,所以我先使用bcrypt进行比较,然后将其添加到“ mylikes”数组中。

关于Promises / await / async,我仍然是菜鸟,因此可以提供任何帮助。

我正在尝试返回某个用户喜欢的事件列表,但是代码返回的数组似乎总是空的(返回在我的for循环之前执行)。 router.route(“ / app / mylikes”)。get(...

node.js express promise async-await bcrypt
1个回答
1
投票

您正在使用bcrypt.compare的回调系统,但是当省略回调参数时,还会有一个promise interface for it

© www.soinside.com 2019 - 2024. All rights reserved.