【发布时间】:2014-10-05 16:52:14
【问题描述】:
我需要在一个数组中进行迭代以查找商品,然后对这些价格求和。
这是异步函数的问题。我正在使用 Q 来帮助我实现承诺,但我无法解决这种情况。
var price = 0;
var setPrice = function() {
_.each(order.items, function(item) {
Item.findOne({ 'shortname': item.item }).exec().then(function(doc) {
price += doc.price;
});
});
}
Q.nfcall(setPrice).then(function() {
console.log(price);
}
Price 设置为 0,nfcall 运行 setPrice 函数对价格进行迭代和求和,然后“then”函数应该显示总价格,但它没有。
我该如何解决这种情况?
【问题讨论】:
-
看看使用
aggregate,而不是让 MongoDB 在单个查询中为您计算总价。
标签: javascript node.js asynchronous mongoose q