【发布时间】:2015-03-20 17:37:41
【问题描述】:
我正在用sails js 创建一个服务。我想在返回之前更新 totalCount 的值。但问题是当返回在 async.series 的回调中时,我在调用它时得到一个 undefined 。我该怎么做?
var totalCount = 0;
async.series([
function getProducts(cb_series){
Inventory.find({sku_id : sku_id, bay_id : bay_id})
.then(function(inventory_items){
async.each(inventory_items, function(item, cb_each){
totalCount = totalCount + item.physical_count;
cb_each();
}, function(err){
if(err)
console.log(err);
cb_series();
});
});
}
], function returnResult(err, cb){
if(err)
console.log(err);
return totalCount;
});
【问题讨论】:
-
您是否使用
async.each进行同步求和? -
因为查找的结果是一个数组。它将返回超过 1 个符合我的条件的实例,我正在添加所有这些实例,这就是我使用 async each 的原因
-
是的,
inventory_items是一个数组。但是你可以用一个简单的for循环来循环它,不需要async? -
哦。好,谢谢。我应该在什么时候使用异步?
-
仅当“循环体”为异步时。但是当你使用 Promise 时,实际上从来没有。
标签: javascript asynchronous sails.js