微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

forEach 循环以错误的顺序返回一些项目

如何解决forEach 循环以错误的顺序返回一些项目

我正在通过项目列表在我的 nodejs 路由中执行 foreach,然后在 foreach 完成后呈现 ejs 页面。但令我惊讶的是,我收到的一些商品的顺序是随机错误的。

router.get("/history",isLoggedIn,function(req,res) {
  var docs=[];
  Tube.find({}).sort({date: 'desc'}).limit(100).exec((err,tubes) => {



var itemsProcessed = 0;
        var status;

tubes.forEach(async (tube,index,array) => {
     await Box.findOne({ $or: [{"Tubes": tube._id},{"nok_Tubes": tube._id}]},async function (err,Box) {
      if(err || !Box) {console.log(err); res.json({message:"Failed"});}
      else{
        if(tube.status)
        status=await "ok";
        else if(tube.status===false) status=await "nok";
       await docs.push({qr: tube.qr_code,status,code_bar: Box.code_bar,insert_date: moment(tube.date).format("YYYY-M-D H:mm:ss a"),count_in_Box: tube.count_in_Box });
       }

    }).then(function () {
      itemsProcessed++;
      if(itemsProcessed === array.length) {
        console.log(docs[0]);
        res.render("detection/history",{docs});
      }
    });


});







   });
   
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。