Sails JS:如何 return 来自服务的值
Sails JS : How to return a value from a service
我正在用 sails js 创建一个服务。我想在 returning 之前更新 totalCount 的值。但问题是当 return 在 async.series 的回调中时,我在调用它时得到一个未定义的。我应该怎么做?
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;
});
我不太确定你想做什么。但是你可能想在这样的回调中传递 totalCount :
function getProducts(callback){
Inventory.find({sku_id : sku_id, bay_id : bay_id}).then(
function(inventory_items){
callback(null, inventory_items.length)
}, function(err){
console.log(err);
callback(err);
});
}
如果出现错误,它将以错误作为第一个参数回调,因此对其进行空检查。如果第一个参数为 null,则第二个参数将是数组的长度。
如果您希望 return 所有产品而不仅仅是长度(正如函数名称所暗示的那样),那么它非常相似:
function getProducts(callback){
Inventory.find({sku_id : sku_id, bay_id : bay_id}).then(
function(inventory_items){
callback(null, inventory_items)
}, function(err){
console.log(err);
callback(err);
});
}
第一种情况你会这样使用它:
getProducts(function(err, productCount) {
if(err) {
console.log(err);
return err;
} else {
var totalCount = productCount;
}
//etc etc...
}
...或者第二种情况:
getProducts(function(err,products) {
if(err) {
console.log(err);
return err;
} else {
var productArray = products;
}
//etc etc...
}
我正在用 sails js 创建一个服务。我想在 returning 之前更新 totalCount 的值。但问题是当 return 在 async.series 的回调中时,我在调用它时得到一个未定义的。我应该怎么做?
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;
});
我不太确定你想做什么。但是你可能想在这样的回调中传递 totalCount :
function getProducts(callback){
Inventory.find({sku_id : sku_id, bay_id : bay_id}).then(
function(inventory_items){
callback(null, inventory_items.length)
}, function(err){
console.log(err);
callback(err);
});
}
如果出现错误,它将以错误作为第一个参数回调,因此对其进行空检查。如果第一个参数为 null,则第二个参数将是数组的长度。
如果您希望 return 所有产品而不仅仅是长度(正如函数名称所暗示的那样),那么它非常相似:
function getProducts(callback){
Inventory.find({sku_id : sku_id, bay_id : bay_id}).then(
function(inventory_items){
callback(null, inventory_items)
}, function(err){
console.log(err);
callback(err);
});
}
第一种情况你会这样使用它:
getProducts(function(err, productCount) {
if(err) {
console.log(err);
return err;
} else {
var totalCount = productCount;
}
//etc etc...
}
...或者第二种情况:
getProducts(function(err,products) {
if(err) {
console.log(err);
return err;
} else {
var productArray = products;
}
//etc etc...
}