SailsJS:如何从服务返回值
Sails JS : How to return a value from a service
我正在sails js中创建一个服务。我想在返回totalCount之前更新它的值。但问题是,当返回在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 out:
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检查。如果第一个参数为null,那么第二个参数将是数组的长度。
如果你想返回所有的产品,而不仅仅是长度(正如函数的名称所暗示的),那么它非常相似:
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...
}
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- chrome.storage.sync.get未返回值-Angular服务
- SailsJS:如何从服务返回值
- 从服务返回值时$scope控制器的变量是未定义的
- 从角度服务返回空值的变量
- 在 AngularJs 中,从工厂服务到控制器的返回值丢失
- Web服务返回给javascript的值是未定义的
- 如何在角度 js 中从服务返回值
- 通过ajax调用从js方法返回值到REST服务
- 从AngularJS服务检索值而不返回值
- 如何检查angularjs服务中的返回值是一个承诺
- AngularJS 1.2.19从嵌套$resource服务返回值
- 无法从工厂向服务angularJS返回值
- AngularJS服务内部的promise返回值似乎会改变
- AngularJS:如何从服务中检索返回值
- ASP.. NET Javascript到web服务获取回调函数之外的返回值
- Angular:在我在控制器中设置返回值之前,我怎么能等待服务中的承诺被解析呢?
- 在我自己的Angular服务中,如何将返回值返回给调用该服务的控制器
- 角度.js - 在控制器中等待服务从服务器返回值
- 如何用ajax从Java Rest Web服务返回一个值