我正在尝试在具有(productId,size,quantity)之类的属性的cart(外部async.map)上进行映射,我正在该地图中执行一个查询,该查询从productId中检索imageIds(Array)。我在imageIds(inner async.map)上进行映射以检索图像数据。即使在使用回调之后,也要在外部async.map回调之后检索图像数据(执行doc.image = result)。 我被困在这里,请帮帮我:(
CODE
var cart = await Cart.find({ "user_id": user_id }, { "_id": 0, "size": 1, "quantity": 1, "productId": 1 })
async.map(cart,function(doc,done) {
Product.findById(doc.productId,{"name": 1, "actualPrice": 1, "discount": 1, "type": 1, "imageIds":1}, function(err, q){
if(err) return next(err);
doc=doc.toObject()
async.map(q.imageIds,function(img,done){
Image.findById(img,function(err,imgRes){
done(null,imgRes)
})
},function(err,result){
if(err) return next(err);
doc.image=result
})
doc.name = q.name
doc.actualPrice = q.actualPrice
doc.discount = q.discount
doc.type = q.type
done(null, doc);
});
}, function(err, result) {
if(err) return next(err);
res.json(result);
})