【发布时间】:2021-11-04 13:14:25
【问题描述】:
我正在尝试使用 findById 计算从数据库查询的每个产品价格的总和。 id 来自我使用 forEach 循环迭代的对象数组。
module.exports.checkoutOrder = (reqBody, buyerId, isAdmin)=>{
let sum =0;
reqBody.items.forEach(item=>{
Product.findById(item.productId,(error, result)=>{
//console.log(result.price);
sum += result.price;
})
}) console.log(sum);
问题是,我似乎无法在 findById 块中获取或设置任何变量。即使我将 return 放在 sum 变量上,它始终是相同的结果 0。我确信当我 console.log result.price 时我的查询正在返回一个数据。
我知道还有其他方法可以对数据求和,我只是想先知道为什么它不能这样工作?
【问题讨论】:
-
@NiceBooks,我怎样才能输出总和?我只是把它放在循环之外
-
请参考我的回答。
标签: javascript node.js mongodb mongoose