变量obj仍然清空到console.log(obj)中,如何完成ahcer搜索并打印所有数据变量?
'showservices': function (req, res, next) {
Service.find(...., function (err, services) {
if (err) return next(err);
var obj = [];
_.each(services, function(s){
SaleDetail.find({id_service:s.id_service}, function (err, details){
var total = 0
var cont = 0
_.each(details, function(d){
total = total + parseFloat(d.fullPrice);
cont ++;
});
obj.push({
name: s.serviceName,
cant: cont,
total: total,
});
console.log(obj)
});
});
console.log(obj)
});
},
最佳答案
请使用async
'showservices': function (req, res, next) {
async.auto({
services: function(callback){
Service.find(....).exec(callback);
},
result: ['services', function(callback,results){
var obj = [];
async.each(results.services, function(s, innercb){
SaleDetail.find({id_service:s.id_service}).exec(function(err, details){
var total = 0
var cont = 0
_.each(details, function(d){
total = total + parseFloat(d.fullPrice);
cont ++;
});
obj.push({
name: s.serviceName,
cant: cont,
total: total,
});
innercb();
});
}, function(err){
callback(err, obj);
});
}],
}, function(err,result){
if (err) return next(err);
console.log(result.result);
});
},
关于javascript - 异步 Controller sails.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27823829/